ApplicationDeployment.Update Method

Note: This method is new in the .NET Framework version 2.0.

Starts a synchronous download and installation of this application's latest version.

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

public bool Update ()
public boolean Update ()
public function Update () : boolean

Return Value

true if an application has been updated; otherwise, false.

Exception typeCondition

TrustNotGrantedException

The local computer did not grant this application the permission level it requested to execute.

InvalidDeploymentException

Your ClickOnce deployment is corrupted. For tips on how to diagnose and correct the problem, see Troubleshooting ClickOnce Deployments.

DeploymentDownloadException

The new deployment could not be downloaded from its location on the network.

An application is considered updated when you publish a new version of the application to the location specified by UpdateLocation, and the version number in the application's deployment manifest is greater than the version number of the application currently installed on the user's computer.

This call will block until the update has been downloaded to the client computer and installed into the ClickOnce cache; during this time, the application will not be responsive to the user. If you want to maintain application responsiveness, or display a progress report during download, use the UpdateAsync method instead.

Update will download all files in a deployment not marked as "optional" in the application manifest. You can download optional files on demand using the DownloadFileGroup or the DownloadFileGroupAsync methods.

ClickOnce may already be updating the application automatically when you call this method; if that happens, calls to this method will throw an InvalidOperationException.

If you have updated one or more files in your deployment, but have not refreshed your application manifest, you will receive an InvalidDeploymentException. Most of the time, redeploying your ClickOnce application solves this. You will also receive this exception if a public-key signature on a deployment manifest or application manifest is invalid or missing.

An update may request a higher level of trust on the local computer than the previous version. If the application uses Trusted Application Deployment, the common language runtime trust manager will examine the deployment manifest to determine whether it contains a valid trust license. If the deployment manifest does not contain a valid trust license, ClickOnce will stop the installation and throw a TrustNotGrantedException. Update will never cause a prompt to display asking the user if they want to grant permission for the application to run.

The following code example checks for an application update; if one is available, it installs it synchronously.

private void InstallUpdateSyncWithInfo()
{
    UpdateCheckInfo info = null;

    if (ApplicationDeployment.IsNetworkDeployed)
    {
        ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;

        try
        {
            info = ad.CheckForDetailedUpdate();

        }
        catch (DeploymentDownloadException dde)
        {
            MessageBox.Show("The new version of the application cannot be downloaded at this time. \n\nPlease check your network connection, or try again later. Error: " + dde.Message);
            return;
        }
        catch (InvalidDeploymentException ide)
        {
            MessageBox.Show("Cannot check for a new version of the application. The ClickOnce deployment is corrupt. Please redeploy the application and try again. Error: " + ide.Message);
            return;
        }
        catch (InvalidOperationException ioe)
        {
            MessageBox.Show("This application cannot be updated. It is likely not a ClickOnce application. Error: " + ioe.Message);
            return;
        }

        if (info.UpdateAvailable)
        {
            Boolean doUpdate = true;

            if (!info.IsUpdateRequired)
            {
                DialogResult dr = MessageBox.Show("An update is available. Would you like to update the application now?", "Update Available", MessageBoxButtons.OKCancel);
                if (!(DialogResult.OK == dr))
                {
                    doUpdate = false;
                }
            }

            if (doUpdate)
            {
                try
                {
                    ad.Update();
                    MessageBox.Show("The application has been upgraded, and will now restart.");
                    Application.Restart();
                }
                catch (DeploymentDownloadException dde)
                {
                    MessageBox.Show("Cannot install the latest version of the application. \n\nPlease check your network connection, or try again later. Error: " + dde);
                    return;
                }
            }
        }
    }
}

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

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

.NET Framework

Supported in: 2.0

Community Additions

ADD
Show: