This documentation is archived and is not being maintained.

InPlaceHostingManager.DownloadApplicationAsync Method

Downloads an application update in the background.

Namespace:  System.Deployment.Application
Assembly:  System.Deployment (in System.Deployment.dll)

public void DownloadApplicationAsync()


Raised if this method is called before the GetManifestAsync and AssertApplicationRequirements methods.

You must call this method after calling AssertApplicationRequirements.

The following code example demonstrates the use of DownloadApplicationAsync, which it calls at the end of a successful GetManifestCompleted event handler.

The following code examples assume that you have already defined and created an instance of InPlaceHostingManager named iphm.

void iphm_GetManifestCompleted(object sender, GetManifestCompletedEventArgs e)
    // Check for an error.
    if (e.Error != null)
        // Cancel download and install.
        MessageBox.Show("Could not download manifest. Error: " + e.Error.Message);

    // bool isFullTrust = CheckForFullTrust(e.ApplicationManifest);

    // Verify this application can be installed.
        // the true parameter allows InPlaceHostingManager
        // to grant the permissions requested in the applicaiton manifest.
        iphm.AssertApplicationRequirements(true) ; 
    catch (Exception ex)
        MessageBox.Show("An error occurred while verifying the application. " +
            "Error: " + ex.Message);

    // Use the information from GetManifestCompleted() to confirm 
    // that the user wants to proceed.
    string appInfo = "Application Name: " + e.ProductName;
    appInfo += "\nVersion: " + e.Version;
    appInfo += "\nSupport/Help Requests: " + (e.SupportUri != null ?
        e.SupportUri.ToString() : "N/A");
    appInfo += "\n\nConfirmed that this application can run with its requested permissions.";
    // if (isFullTrust)
    // appInfo += "\n\nThis application requires full trust in order to run.";
    appInfo += "\n\nProceed with installation?";

    DialogResult dr = MessageBox.Show(appInfo, "Confirm Application Install",
        MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
    if (dr != System.Windows.Forms.DialogResult.OK)

    // Download the deployment manifest. 
    iphm.DownloadProgressChanged += new EventHandler<DownloadProgressChangedEventArgs>(iphm_DownloadProgressChanged);
    iphm.DownloadApplicationCompleted += new EventHandler<DownloadApplicationCompletedEventArgs>(iphm_DownloadApplicationCompleted);

        // Usually this shouldn't throw an exception unless AssertApplicationRequirements() failed, 
        // or you did not call that method before calling this one.
    catch (Exception downloadEx)
        MessageBox.Show("Cannot initiate download of application. Error: " +

private bool CheckForFullTrust(XmlReader appManifest)
    if (appManifest == null)
        throw (new ArgumentNullException("appManifest cannot be null."));

    XAttribute xaUnrestricted =
            .Attribute("Unrestricted"); // Attributes never have a namespace

    if (xaUnrestricted != null)
        if (xaUnrestricted.Value == "true")
            return true;

    return false;

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.