CheckForUpdateCompletedEventArgs Class
Represents detailed update information obtained through a call to CheckForUpdateAsync.
Assembly: System.Deployment (in System.Deployment.dll)
System::EventArgs
System.ComponentModel::AsyncCompletedEventArgs
System.Deployment.Application::CheckForUpdateCompletedEventArgs
| Name | Description | |
|---|---|---|
![]() | AvailableVersion | Gets the version number of the latest uninstalled version. |
![]() | Cancelled | Gets a value indicating whether an asynchronous operation has been canceled.(Inherited from AsyncCompletedEventArgs.) |
![]() | Error | Gets a value indicating which error occurred during an asynchronous operation.(Inherited from AsyncCompletedEventArgs.) |
![]() | IsUpdateRequired | Gets a value indicating whether the update must be installed. |
![]() | MinimumRequiredVersion | Gets the minimum version that the user must have installed on the computer. |
![]() | UpdateAvailable | Gets whether an uninstalled update is available. |
![]() | UpdateSizeBytes | Gets the size of the available update. |
![]() | UserState | Gets the unique identifier for the asynchronous task.(Inherited from AsyncCompletedEventArgs.) |
| Name | Description | |
|---|---|---|
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | RaiseExceptionIfNecessary() | Raises a user-supplied exception if an asynchronous operation failed.(Inherited from AsyncCompletedEventArgs.) |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
With CheckForUpdateCompletedEventArgs, you can decide whether to upgrade your ClickOnce application based on information about the newest version. UpdateAvailable will return a Boolean value indicating whether there is a new update at all. The AvailableVersion property provides the version number of the new version, while MinimumRequiredVersion provides the earliest version that the user should have installed on the computer. IsUpdateRequired expresses whether the latest available update is required of the user. Finally, UpdateSizeBytes expresses the total size of the update.
The following code example uses UpdateAvailable to determine if there is a new application update, and IsUpdateRequired to determine whether to ask the user to install the update.
private: long sizeOfUpdate; private: void Form1_Load(Object^ sender, System::EventArgs^ e) { DoUpdate(); } public: void DoUpdate() { if (ApplicationDeployment::IsNetworkDeployed) { ApplicationDeployment^ currentAppDeployment = ApplicationDeployment::CurrentDeployment; currentAppDeployment->CheckForUpdateCompleted += gcnew CheckForUpdateCompletedEventHandler( this, &Form1::currentDeploy_CheckForUpdateCompleted); currentAppDeployment->CheckForUpdateAsync(); } } // If update is available, fetch it. void currentDeploy_CheckForUpdateCompleted(Object^ sender, CheckForUpdateCompletedEventArgs^ e) { if (nullptr != e->Error) { // Log error. return; } if (e->UpdateAvailable) { sizeOfUpdate = (long) e->UpdateSizeBytes; if (!e->IsUpdateRequired) { System::Windows::Forms::DialogResult updateDialogueResult = MessageBox::Show( "An update is available.Would you like to update the" + " application now?", "Update Available", MessageBoxButtons::OKCancel); if (System::Windows::Forms::DialogResult::OK == updateDialogueResult) { BeginUpdate(); } } else { BeginUpdate(); } } } void BeginUpdate() { ApplicationDeployment^ ad = ApplicationDeployment::CurrentDeployment; ad->UpdateCompleted += gcnew AsyncCompletedEventHandler( this, &Form1::CurrentDeployment_UpdateCompleted); // Indicate progress in the application's status bar. ad->UpdateProgressChanged += gcnew DeploymentProgressChangedEventHandler(this, &Form1::ad_ProgressChanged); ad->UpdateAsync(); } void CurrentDeployment_UpdateCompleted(Object^ sender, AsyncCompletedEventArgs^ e) { if (!e->Cancelled) { if (nullptr != e->Error) { System::Windows::Forms::DialogResult restartDialogueResult = MessageBox::Show( "The application has been updated. Restart?", "Restart Application", MessageBoxButtons::OKCancel); if (System::Windows::Forms::DialogResult::OK == restartDialogueResult) { Application::Restart(); } } else { // Replace with your own error reporting or logging. MessageBox::Show( "The application encountered an error in downloading" + " the latest update. Error: {0}", e->Error->Message); } } else { // Replace with your own error reporting or logging. MessageBox::Show("The update of the application's latest" + " version was cancelled."); } } void ad_ProgressChanged(Object^ sender, DeploymentProgressChangedEventArgs^ e) { String^ progressText = String::Format( "{0:D}K out of {1:D}K downloaded - {2:D}% complete", e->BytesCompleted / 1024, e->BytesTotal / 1024, e->ProgressPercentage); statusStrip1->Text = progressText; }
Available since 2.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


