ApplicationDeployment.CheckForUpdate メソッド

定義

UpdateLocation をチェックし、新しい更新プログラムを利用できるかどうかを確認します。Checks UpdateLocation to determine whether a new update is available.

オーバーロード

CheckForUpdate()

UpdateLocation をチェックし、新しい更新プログラムを利用できるかどうかを確認します。Checks UpdateLocation to determine whether a new update is available.

CheckForUpdate(Boolean)

UpdateLocation をチェックし、新しい更新プログラムを利用できるかどうかを確認します。Checks UpdateLocation to determine whether a new update is available.

CheckForUpdate()

UpdateLocation をチェックし、新しい更新プログラムを利用できるかどうかを確認します。Checks UpdateLocation to determine whether a new update is available.

public:
 bool CheckForUpdate();
public bool CheckForUpdate ();
member this.CheckForUpdate : unit -> bool
Public Function CheckForUpdate () As Boolean

戻り値

新しい更新プログラムを利用できる場合は true。それ以外の場合は falsetrue if a new update is available; otherwise, false.

例外

更新プログラムが既に実行中であるときに ClickOnceClickOnce メソッドを呼び出すと、CheckForUpdate() は即座にこの例外をスローします。ClickOnceClickOnce throws this exception immediately if you call the CheckForUpdate() method while an update is already in progress.

配置マニフェストをダウンロードできません。The deployment manifest cannot be downloaded.

配置マニフェストが破損しています。The deployment manifest is corrupted. この問題を解決するには、アプリケーションを再配置する必要があると思われます。You will likely need to redeploy the application to fix this problem.

次のコード例では、アプリケーションの更新プログラムを確認します。使用可能な場合は、同期的にインストールされます。The following code example checks for an application update; if one is available, it installs it synchronously.

public:
    void LaunchUpdateWithTimeout()
    {
        if (ApplicationDeployment::IsNetworkDeployed)
        {
            ApplicationDeployment^ appDeployment =
                ApplicationDeployment::CurrentDeployment;
            appDeployment->UpdateCompleted +=
                gcnew AsyncCompletedEventHandler(this, 
                &Form1::deploy_UpdateCompleted);

            // The Interval property uses millisecond resolution.
            timer1->Interval = (1000 * 60) * 2;
            timer1->Start();

            appDeployment->UpdateAsync();
        }
    }

private:
    void deploy_UpdateCompleted(Object^ sender,
        AsyncCompletedEventArgs^ e)
    {
        timer1->Stop();
        if (!e->Cancelled)
        {
            if (nullptr == e->Error)
            {
                Application::Restart();
            }
            else
            {
                // Replace with your own error reporting or logging.
                MessageBox::Show(
                    "The update of the application encountered an " +
                    "error. Error message: {0}",
                    e->Error->Message);
            }
        }
        else
        {
            // Replace with your own error reporting or logging.
            MessageBox::Show(
                "The application update was cancelled because the update " +
                "server was unreachable. Please try again later.");
        }
    }

private:
    void timer1_Tick(Object^ sender, EventArgs^ e)
    {
        if (ApplicationDeployment::IsNetworkDeployed)
        {
            ApplicationDeployment::CurrentDeployment->UpdateAsyncCancel();
        }
    }
private void InstallUpdateSync()
{
    if (ApplicationDeployment.IsNetworkDeployed)
    {
        Boolean updateAvailable = false;
        ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;

        try
        {
            updateAvailable = ad.CheckForUpdate();
        }
        catch (DeploymentDownloadException dde)
        {
            // This exception occurs if a network error or disk error occurs
            // when downloading the deployment.
            MessageBox.Show("The application cannt check for the existence of a new version at this time. \n\nPlease check your network connection, or try again later. Error: " + dde);
            return;
        }
        catch (InvalidDeploymentException ide)
        {
            MessageBox.Show("The application cannot check for an update. The ClickOnce deployment is corrupt. Please redeploy the application and try again. Error: " + ide.Message);
            return;
        }
        catch (InvalidOperationException ioe)
        {
            MessageBox.Show("This application cannot check for an update. This most often happens if the application is already in the process of updating. Error: " + ioe.Message);
            return;
        }

        if (updateAvailable)
        {
            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. Either the deployment server is unavailable, or your network connection is down. \n\nPlease check your network connection, or try again later. Error: " + dde.Message);
            }
            catch (TrustNotGrantedException tnge)
            {
                MessageBox.Show("The application cannot be updated. The system did not grant the application the appropriate level of trust. Please contact your system administrator or help desk for further troubleshooting. Error: " + tnge.Message);
            }
        }
    }
}
Private Sub InstallUpdateSync()
    If (ApplicationDeployment.IsNetworkDeployed) Then
        Dim updateAvailable As Boolean = False
        Dim AD As ApplicationDeployment = ApplicationDeployment.CurrentDeployment

        Try
            updateAvailable = AD.CheckForUpdate()
        Catch dde As DeploymentDownloadException
            ' This exception occurs if a network error or disk error occurs
            ' when downloading the deployment.
            MessageBox.Show("The application cannot check for the existence of a new version at this time. " & ControlChars.Lf & ControlChars.Lf & "Please check your network connection, or try again later. Message: " & dde.Message)
            Exit Sub
        Catch ide As InvalidDeploymentException
            MessageBox.Show("The application cannot check for an update. The ClickOnce deployment is corrupt. Please redeploy the application and try again. Message: " & ide.Message)
            Exit Sub
        Catch ioe As InvalidOperationException
            MessageBox.Show("The application cannot check for an update. This most likely happened because the application is already updating. Message: " & ioe.Message)
            Exit Sub
        End Try

        If (updateAvailable) Then
            Try
                AD.Update()
                MessageBox.Show("The application has been upgraded, and will now restart.")
                Application.Restart()
            Catch dde As DeploymentDownloadException
                MessageBox.Show("Cannot install the latest version of the application. " + ControlChars.Lf + ControlChars.Lf + "Please check your network connection, or try again later.")
            End Try
        End If
    End If
End Sub

注釈

CheckForUpdate メソッドは、現在インストールされている展開のバージョンと、UpdateLocationで見つかった配置マニフェストに指定されているバージョンを比較します。The CheckForUpdate method compares the version of the currently installed deployment with the version specified in the deployment manifest found at UpdateLocation. サーバー上のバージョンがインストールされているバージョンと異なる場合は trueが返されます。If the version on the server is different from the installed version, it returns true.

このメソッドは、チェックが完了するまでブロックします。This method will block until the check has completed. 更新プログラムを非同期でチェックするには、代わりに CheckForUpdateAsync メソッドを使用します。To check for an update asynchronously, use the CheckForUpdateAsync method instead.

注意

更新プログラムが使用可能であることが検出され、ユーザーがインストールを選択しなかった場合は、次にアプリケーションを実行したときに更新プログラムが使用可能であることをユーザーに確認するメッセージが表示され CheckForUpdate ClickOnceClickOnce ます。If CheckForUpdate discovers that an update is available, and the user chooses not to install it, ClickOnceClickOnce will prompt the user that an update is available the next time the application is run. このメッセージを表示しないようにする方法はありません。There is no way to disable this prompting. (アプリケーションが必要な更新プログラムである場合は、プロンプトを表示せずにインストール ClickOnceClickOnce ます)。(If the application is a required update, ClickOnceClickOnce will install it without prompting.)

セキュリティ

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

こちらもご覧ください

CheckForUpdate(Boolean)

UpdateLocation をチェックし、新しい更新プログラムを利用できるかどうかを確認します。Checks UpdateLocation to determine whether a new update is available.

public:
 bool CheckForUpdate(bool persistUpdateCheckResult);
public bool CheckForUpdate (bool persistUpdateCheckResult);
member this.CheckForUpdate : bool -> bool
Public Function CheckForUpdate (persistUpdateCheckResult As Boolean) As Boolean

パラメーター

persistUpdateCheckResult
Boolean

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

戻り値

新しい更新プログラムを利用できる場合は true。それ以外の場合は falsetrue if a new update is available; otherwise, false.

適用対象