Export (0) Print
Expand All

ApplicationDeployment.Update Method

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

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

public bool Update ()
public boolean Update ()
public function Update () : boolean
Not applicable.

Return Value

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

Exception typeCondition

TrustNotGrantedException

The local computer did not grant the 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.

InvalidOperationException

The application is currently being updated.

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.

The Update 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 downloads all of the files that are not marked as "optional" in the application manifest. You can download optional files on demand by using the DownloadFileGroup or the DownloadFileGroupAsync method.

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

If you have updated one or more files in your deployment, but you have not refreshed your application manifest, you will receive an InvalidDeploymentException. Most of the time, redeploying your ClickOnce application solves this problem. 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 of the application. If the application uses Trusted Application Deployment, the common language runtime (CLR) trust manager examines the deployment manifest to determine whether it contains a valid trust license. If the deployment manifest does not contain a valid trust license, ClickOnce stops the installation and throws a TrustNotGrantedException. The Update method will never display a prompt asking the user whether they want to grant the application permission to run.

The following code example checks for an application update; if an update 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;
                }
            }
            else
            {
                // Display a message that the app MUST reboot. Display the minimum required version.
                MessageBox.Show("This application has detected a mandatory update from your current " + 
                    "version to version " + info.MinimumRequiredVersion.ToString() + 
                    ". The application will now install the update and restart.", 
                    "Update Available", MessageBoxButtons.OK, 
                    MessageBoxIcon.Information);
            }

            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 Server 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 Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0

Community Additions

ADD
Show:
© 2014 Microsoft