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

Возвращаемое значение

Класс UpdateCheckInfo для доступного обновления.An 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

Комментарии

Метод CheckForDetailedUpdate позволяет синхронным вызывающим объектам получать те же расширенные сведения, которые асинхронные вызывающие объекты получают с помощью класса CheckForUpdateCompletedEventArgs.The CheckForDetailedUpdate method lets synchronous callers get the same extended information that asynchronous callers get using the CheckForUpdateCompletedEventArgs class.

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.

Возвращаемое значение

Класс UpdateCheckInfo для доступного обновления.An UpdateCheckInfo for the available update.

Применяется к