DeploymentProgressState Enumeration
Assembly: System.Deployment (in system.deployment.dll)
DeploymentProgressState is passed by way of the State member of DeploymentProgressChangedEventArgs, which is used by the CheckForUpdateProgressChanged, UpdateProgressChanged, and DownloadFileGroupProgressChanged events. Use the members of this enumeration to determine what portion of the ClickOnce deployment has already been downloaded to the local machine.
The following code example installs the latest ClickOnce application update asynchronously.
Private sizeOfUpdate As Long = 0 Dim WithEvents ADUpdateAsync As ApplicationDeployment Private Sub UpdateApplication() If (ApplicationDeployment.IsNetworkDeployed) Then ADUpdateAsync = ApplicationDeployment.CurrentDeployment ADUpdateAsync.CheckForUpdateAsync() End If End Sub Sub ADUpdateAsync_CheckForUpdateProgressChanged(ByVal sender As Object, ByVal e As DeploymentProgressChangedEventArgs) Handles ADUpdateAsync.CheckForUpdateProgressChanged DownloadStatus.Text = [String].Format("{0:D}K of {1:D}K downloaded.", e.BytesCompleted / 1024, e.BytesTotal / 1024) End Sub Sub ADUpdateAsync_CheckForUpdateCompleted(ByVal sender As Object, ByVal e As CheckForUpdateCompletedEventArgs) Handles ADUpdateAsync.CheckForUpdateCompleted If (e.Error IsNot Nothing) Then MessageBox.Show(("ERROR: Could not retrieve new version of the application. Reason: " + ControlChars.Lf + e.Error.Message + ControlChars.Lf + "Please report this error to the system administrator.")) Return Else If (e.Cancelled = True) Then MessageBox.Show("The update was cancelled.") End If End If ' Ask the user if they would like to update the application now. If (e.UpdateAvailable) Then sizeOfUpdate = e.UpdateSizeBytes If (Not e.IsUpdateRequired) Then Dim dr As DialogResult = MessageBox.Show("An update is available. Would you like to update the application now?", "Update Available", MessageBoxButtons.OKCancel) If (System.Windows.Forms.DialogResult.OK = dr) Then BeginUpdate() End If Else MessageBox.Show("A mandatory update is available for your application. We will install the update now, after which we will save all of your in-progress data and restart your application.") BeginUpdate() End If End If End Sub Private Sub BeginUpdate() ADUpdateAsync = ApplicationDeployment.CurrentDeployment ADUpdateAsync.UpdateAsync() End Sub Sub ADUpdateAsync_UpdateProgressChanged(ByVal sender As Object, ByVal e As DeploymentProgressChangedEventArgs) Handles ADUpdateAsync.UpdateProgressChanged Dim progressText As String = String.Format("{0:D}K out of {1:D}K downloaded - {2:D}% complete", e.BytesCompleted / 1024, e.BytesTotal / 1024, e.ProgressPercentage) DownloadStatus.Text = progressText End Sub Sub ADUpdateAsync_UpdateCompleted(ByVal sender As Object, ByVal e As AsyncCompletedEventArgs) Handles ADUpdateAsync.UpdateCompleted If (e.Cancelled) Then MessageBox.Show("The update of the application's latest version was cancelled.") Exit Sub Else If (e.Error IsNot Nothing) Then MessageBox.Show("ERROR: Could not install the latest version of the application. Reason: " + ControlChars.Lf + e.Error.Message + ControlChars.Lf + "Please report this error to the system administrator.") Exit Sub End If End If Dim dr As DialogResult = MessageBox.Show("The application has been updated. Restart? (If you do not restart now, the new version will not take effect until after you quit and launch the application again.)", "Restart Application", MessageBoxButtons.OKCancel) If (dr = System.Windows.Forms.DialogResult.OK) Then Application.Restart() End If End Sub
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.