ApplicationDeployment.CheckForDetailedUpdate メソッド

定義

CheckForUpdate() と同じ操作を実行しますが、利用可能な更新プログラムの拡張情報を返します。Performs the same operation as CheckForUpdate(), but returns extended information about the available update.

オーバーロード

CheckForDetailedUpdate()

CheckForUpdate() と同じ操作を実行しますが、利用可能な更新プログラムの拡張情報を返します。Performs the same operation as CheckForUpdate(), but returns extended information about the available update.

CheckForDetailedUpdate(Boolean)

CheckForUpdate() と同じ操作を実行しますが、利用可能な更新プログラムの拡張情報を返します。Performs the same operation as CheckForUpdate(), but returns extended information about the available update.

CheckForDetailedUpdate()

CheckForUpdate() と同じ操作を実行しますが、利用可能な更新プログラムの拡張情報を返します。Performs the same operation as CheckForUpdate(), but returns extended information about the available update.

public:
 System::Deployment::Application::UpdateCheckInfo ^ CheckForDetailedUpdate();
public System.Deployment.Application.UpdateCheckInfo CheckForDetailedUpdate ();
member this.CheckForDetailedUpdate : unit -> System.Deployment.Application.UpdateCheckInfo
Public Function CheckForDetailedUpdate () As UpdateCheckInfo

戻り値

利用可能な更新プログラムの UpdateCheckInfoAn UpdateCheckInfo for the available update.

例外

現在のアプリケーションは、更新プログラムをサポートするように構成されていないか、別の更新プログラムのチェック操作が既に実行中です。The current application is either not configured to support updates, or there is another update check operation already in progress.

配置マニフェストをダウンロードできません。The deployment manifest cannot be downloaded. この例外は、Error イベントの CheckForUpdateCompleted プロパティで確認できます。This exception will appear in the Error property of the CheckForUpdateCompleted event.

配置マニフェストが破損しています。The deployment manifest is corrupted. このアプリケーションをユーザーに配置する前に、アプリケーションのマニフェストを再作成してください。Regenerate the application's manifest before you attempt to deploy this application to users. この例外は、Error イベントの CheckForUpdateCompleted プロパティで確認できます。This exception will appear in the Error property of the CheckForUpdateCompleted event.

次のコード例でCheckForDetailedUpdateは、を使用して、最新の更新プログラムに関する情報を取得します。The following code example uses CheckForDetailedUpdate to retrieve the information about the latest update. 更新プログラムが存在する場合は、必要な更新プログラムである場合にのみ、更新プログラムが自動的にインストールされます。それ以外の場合は、ユーザーに表示されます。If an update exists, it installs it automatically only if it is a required update; otherwise, it prompts the user.

public:
    void InstallUpdateSyncWithInfo()
    {
        if (ApplicationDeployment::IsNetworkDeployed)
        {
            ApplicationDeployment^ deployment =
                ApplicationDeployment::CurrentDeployment;
            UpdateCheckInfo^ updateInfo = nullptr;

            try
            {
                updateInfo = deployment->CheckForDetailedUpdate();
            }
            catch (Exception^ ex)
            {
                MessageBox::Show("The update failed. Error: {0}",
                    ex->Message);
                return;
            }

            if (updateInfo->UpdateAvailable)
            {
                bool doUpdate = true;

                if (!updateInfo->IsUpdateRequired)
                {
                    System::Windows::Forms::DialogResult dr =
                        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))
                    {
                        doUpdate = false;
                    }
                }

                if (doUpdate)
                {
                    try
                    {
                        deployment->Update();
                        MessageBox::Show(
                            "The application has been upgraded, and will " +
                            "now restart.");
                        Application::Restart();
                    }
                    catch (Exception^ ex)
                    {
                        MessageBox::Show("The update failed. Error: {0}",
                            ex->Message);
                        return;
                    }
                }
            }
        }
    }
public void LaunchAppUpdate()
{
    if (ApplicationDeployment.IsNetworkDeployed)
    {
        ApplicationDeployment appDeploy = ApplicationDeployment.CurrentDeployment;
        appDeploy.UpdateCompleted += new AsyncCompletedEventHandler(appDeploy_UpdateCompleted);
    }
}

void appDeploy_UpdateCompleted(object sender, AsyncCompletedEventArgs e)
{
    if (e.Error != null)
    {
        MessageBox.Show("Could not install application update. Please try again later,  or contact a system administrator.", "Application Update Error");
        return;
    }
    else if (e.Cancelled)
    {
        MessageBox.Show("The application update has been cancelled.", "Application Update Cancelled");
        return;
    }

    // Process successful update.
    DialogResult dr = MessageBox.Show("The application has been updated. Restart?", "Restart Application", MessageBoxButtons.OKCancel);
    if (DialogResult.OK == dr)
    {
        Application.Restart();
    }
}

Dim WithEvents ADLaunchAppUpdate As ApplicationDeployment

Public Sub LaunchAppUpdate()
    If (ApplicationDeployment.IsNetworkDeployed) Then
        ADLaunchAppUpdate = ApplicationDeployment.CurrentDeployment
    End If
End Sub


Private Sub ADLaunchAppUpdate_UpdateCompleted(ByVal sender As Object, ByVal e As AsyncCompletedEventArgs) Handles ADLaunchAppUpdate.UpdateCompleted
    If Not (e.Error Is Nothing) Then
        MessageBox.Show("Could not install application update. Please try again later,  or contact a system administrator.", "Application Update Error")
        Exit Sub
    Else
        If (e.Cancelled) Then
            MessageBox.Show("The application update has been cancelled.", "Application Update Cancelled")
            Exit Sub
        End If
    End If

    ' Process successful update.
    Dim dr As DialogResult = MessageBox.Show("The application has been updated. Restart?", "Restart Application", MessageBoxButtons.OKCancel)
    If (System.Windows.Forms.DialogResult.OK = dr) Then
        Application.Restart()
    End If
End Sub

注釈

メソッドCheckForDetailedUpdateCheckForUpdateCompletedEventArgs使用すると、非同期呼び出し元がクラスを使用して取得したのと同じ拡張情報を取得できます。The CheckForDetailedUpdate method lets synchronous callers get the same extended information that asynchronous callers get using the CheckForUpdateCompletedEventArgs class.

セキュリティ

PermissionSet
ローカルコンピューターへのフルアクセス。For full access to the local computer. PermissionState (関連する列挙体)Associated enumeration: PermissionState.

CheckForDetailedUpdate(Boolean)

CheckForUpdate() と同じ操作を実行しますが、利用可能な更新プログラムの拡張情報を返します。Performs the same operation as CheckForUpdate(), but returns extended information about the available update.

public:
 System::Deployment::Application::UpdateCheckInfo ^ CheckForDetailedUpdate(bool persistUpdateCheckResult);
public System.Deployment.Application.UpdateCheckInfo CheckForDetailedUpdate (bool persistUpdateCheckResult);
member this.CheckForDetailedUpdate : bool -> System.Deployment.Application.UpdateCheckInfo
Public Function CheckForDetailedUpdate (persistUpdateCheckResult As Boolean) As UpdateCheckInfo

パラメーター

persistUpdateCheckResult
Boolean

false の場合、更新は通知なしに適用され、ダイアログ ボックスは表示されません。If false, the update will be applied silently and no dialog box will be displayed.

戻り値

利用可能な更新プログラムの UpdateCheckInfoAn UpdateCheckInfo for the available update.

適用対象