application deploymentとは? わかりやすく解説

ApplicationDeployment イベント


パブリック イベントパブリック イベント

  名前 説明
パブリック イベント CheckForUpdateCompleted CheckForUpdateAsync の完了時に発生します
パブリック イベント CheckForUpdateProgressChanged CheckForUpdateAsync呼び出し進行状況更新使用できる場合発生します
パブリック イベント DownloadFileGroupCompleted ファイルダウンロード完了すると、メイン アプリケーション スレッド発生します
パブリック イベント DownloadFileGroupProgressChanged DownloadFileGroupAsync の呼び出しによって開始されファイルダウンロード操作で、ステータス情報使用できる場合発生します
パブリック イベント UpdateCompleted UpdateAsync の呼び出し結果としてClickOnceアプリケーションアップグレード完了したときに発生します
パブリック イベント UpdateProgressChanged UpdateAsync呼び出しによって開始され更新操作についてClickOnce新しステータス情報がある場合発生します
参照参照

関連項目

ApplicationDeployment クラス
System.Deployment.Application 名前空間

その他の技術情報

チュートリアル : デザイナ使用しClickOnce 配置 API必要に応じてアセンブリダウンロードする

ApplicationDeployment クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

プログラムによる現在の配置更新と、必要に応じファイルダウンロードサポートします。このクラス継承できません。

名前空間: System.Deployment.Application
アセンブリ: System.Deployment (system.deployment.dll 内)
構文構文

Public NotInheritable Class
 ApplicationDeployment
Dim instance As ApplicationDeployment
public sealed class ApplicationDeployment
public ref class ApplicationDeployment sealed
public final class ApplicationDeployment
public final class ApplicationDeployment
解説解説

配置マニフェストsubscription 要素によって、自動的に更新チェックしてインストールするように、ClickOnce アプリケーション構成できます。ただし、一部アプリケーションでは、更新対するより細かい制御が必要です。必須の更新プログラムによってインストールし、オプション更新場合ユーザー都合合わせてインストールできるようにユーザー確認求めプロンプト表示できます配置マニフェストサブスクリプション更新無効にすることにより、アプリケーション更新ポリシーを完全に制御できますまた、ClickOnceアプリケーション定期的に更新できるようにする ApplicationDeployment組み合わせて自動サブスクリプション使用することもできます。ただし、重要な更新リリースされ直後ダウンロードするには、ApplicationDeployment使用します

CheckForUpdate メソッドまたは CheckForUpdateAsync メソッド使用すると、配置利用可能更新があるかどうか調べることができます後者メソッドは、正常に完了すると CheckForUpdateCompleted イベント発生させます。CheckForDetailedUpdate は、更新バージョン番号や、その更新現在のユーザーにとって必須の更新かどうかなど、更新に関する重要な情報返します更新利用できる場合は、Update または UpdateAsync を使用してインストールできます後者メソッドは、更新インストール完了すると UpdateCompleted イベント発生させますサイズ大き更新場合は、CheckForUpdateProgressChanged イベントと UpdateProgressChanged イベントによって進行状況通知受け取ることができますまた、ProgressChangedEventArgs の情報使用してダウンロードステータスユーザー通知することもできます

ApplicationDeployment使用すると、必要に応じてサイズ大きファイルアセンブリダウンロードすることもできます。これらのファイルは、インストール時ダウンロードされないように、配置アプリケーション マニフェスト内で "optional" としてマークする必要があります。DownloadFileGroup メソッドまたは DownloadFileGroupAsync メソッド使用すると、アプリケーション存続期間にいつでもファイルダウンロードできますAppDomain クラスの AssemblyResolve イベントイベント ハンドラ提供することによって、アセンブリメモリ読み込まれ前にダウンロードできます詳細については、「チュートリアル : デザイナ使用しClickOnce 配置 API必要に応じてアセンブリダウンロードする」を参照してください

ApplicationDeployment には、パブリック コンストラクタはありません。ClickOnce アプリケーション内のこのクラスインスタンスは、CurrentDeployment プロパティ使用して取得します現在のアプリケーションClickOnce アプリケーションかどうか確認するには、IsNetworkDeployed プロパティ使用します

ApplicationDeployment では、更新チェックしクラスイベントとして完了コールバック公開する新しイベントベースの非同期パターン概要使用して最新ファイル非同期ダウンロードできますApplicationDeployment は、スレッド開始および管理し適切な UI スレッドアプリケーションコールバックます。これにより、アプリケーションロックせずに更新できるため、ユーザー更新インストール中も作業続けることができます更新実行時ユーザーすべての作業中止する必要がある場合は、代わりに同期メソッド使用することを検討してください

メモメモ

非同期更新実行するには、アプリケーションSystem.Deployment 名前空間System.ComponentModel 名前空間両方インポートする必要があります

使用例使用例

アプリケーション読み込み時に新し更新利用できるかどうか確認し必須の更新場合非同期インストールするコード例次に示します

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
long sizeOfUpdate = 0;

private void UpdateApplication()
{
    if (ApplicationDeployment.IsNetworkDeployed)
    {
        ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
        ad.CheckForUpdateCompleted += new CheckForUpdateCompletedEventHandler(ad_CheckForUpdateCompleted);
        ad.CheckForUpdateProgressChanged += new DeploymentProgressChangedEventHandler(ad_CheckForUpdateProgressChanged);

        ad.CheckForUpdateAsync();
    }
}

void  ad_CheckForUpdateProgressChanged(object sender, DeploymentProgressChangedEventArgs
 e)
{
    downloadStatus.Text = String.Format("Downloading: {0}. {1:D}K of {2:D}K
 downloaded.", GetProgressString(e.State), e.BytesCompleted/1024, e.BytesTotal/1024);
   
}

string GetProgressString(DeploymentProgressState state)
{
    if (state == DeploymentProgressState.DownloadingApplicationFiles)
    {
        return "application files";
    } 
    else if (state == DeploymentProgressState.DownloadingApplicationInformation)
 
    {
        return "application manifest";
    } 
    else 
    {
        return "deployment manifest";
    }
}

void ad_CheckForUpdateCompleted(object sender, CheckForUpdateCompletedEventArgs
 e)
{
    if (e.Error != null)
    {
        MessageBox.Show("ERROR: Could not retrieve new version
 of the application. Reason: \n" + e.Error.Message + "\nPlease report
 this error to the system administrator.");
        return;
    }
    else if (e.Cancelled == true)
    {
        MessageBox.Show("The update was cancelled.");
    }

    // Ask the user if they would like to update the application now.
    if (e.UpdateAvailable)
    {
        sizeOfUpdate = e.UpdateSizeBytes;

        if (!e.IsUpdateRequired)
        {
            DialogResult dr = MessageBox.Show("An update is available. Would
 you like to update the application now?\n\nEstimated Download Time: ", "Update
 Available", MessageBoxButtons.OKCancel);
            if (DialogResult.OK == dr)
            {
                BeginUpdate();
            }
        }
        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();
        }
    }
}

private void BeginUpdate()
{
    ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
    ad.UpdateCompleted += new AsyncCompletedEventHandler(ad_UpdateCompleted);

    // Indicate progress in the application's status bar.
    ad.UpdateProgressChanged += new DeploymentProgressChangedEventHandler(ad_UpdateProgressChanged);
}

void ad_UpdateProgressChanged(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);
    downloadStatus.Text = progressText;
}

void ad_UpdateCompleted(object sender, AsyncCompletedEventArgs
 e)
{
    if (e.Cancelled)
    {
        MessageBox.Show("The update of the application's latest version was
 cancelled.");
        return;
    }
    else if (e.Error != null)
    {
        MessageBox.Show("ERROR: Could not install the latest version of the
 application. Reason: \n" + e.Error.Message + "\nPlease report this
 error to the system administrator.");
        return;
    }

    DialogResult dr = 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 (DialogResult.OK == dr)
    {
        Application.Restart();
    }
}
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;
    }
継承階層継承階層
System.Object
  System.Deployment.Application.ApplicationDeployment
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

ApplicationDeployment プロパティ


ApplicationDeployment メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド参照)
  名前 説明
パブリック メソッド CheckForDetailedUpdate CheckForUpdate と同じ操作実行しますが、利用可能更新拡張情報返します
パブリック メソッド CheckForUpdate UpdateLocation をチェックし新し更新利用できるかどうか確認します
パブリック メソッド CheckForUpdateAsync UpdateLocation非同期チェックし新し更新利用できるかどうか確認します
パブリック メソッド CheckForUpdateAsyncCancel 非同期更新チェックキャンセルします
パブリック メソッド DownloadFileGroup 一連のオプション ファイル必要に応じてダウンロードます。
パブリック メソッド DownloadFileGroupAsync オーバーロードされます一連のオプション ファイルを、必要に応じてバックグラウンドダウンロードます。
パブリック メソッド DownloadFileGroupAsyncCancel ファイル非同期ダウンロードキャンセルします
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 ( Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 ( Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド IsFileGroupDownloaded クライアント コンピュータに、名前付ファイル グループが既にダウンロードされているかどうかチェックします
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 ( Object から継承されます。)
パブリック メソッド Update このアプリケーション最新バージョン同期ダウンロードインストール開始します
パブリック メソッド UpdateAsync このアプリケーション最新バージョン非同期ダウンロードインストール開始します
パブリック メソッド UpdateAsyncCancel UpdateAsync によって開始され非同期更新キャンセルします
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ApplicationDeployment クラス
System.Deployment.Application 名前空間

その他の技術情報

チュートリアル : デザイナ使用しClickOnce 配置 API必要に応じてアセンブリダウンロードする

ApplicationDeployment メンバ

プログラムによる現在の配置更新と、必要に応じファイルダウンロードサポートします。このクラス継承できません。

ApplicationDeployment データ型公開されるメンバを以下の表に示します


パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド参照)
  名前 説明
パブリック メソッド CheckForDetailedUpdate CheckForUpdate と同じ操作実行しますが、利用可能更新拡張情報返します
パブリック メソッド CheckForUpdate UpdateLocation をチェックし新し更新利用できるかどうか確認します
パブリック メソッド CheckForUpdateAsync UpdateLocation非同期チェックし新し更新利用できるかどうか確認します
パブリック メソッド CheckForUpdateAsyncCancel 非同期更新チェックキャンセルします
パブリック メソッド DownloadFileGroup 一連のオプション ファイル必要に応じてダウンロードます。
パブリック メソッド DownloadFileGroupAsync オーバーロードされます一連のオプション ファイルを、必要に応じてバックグラウンドダウンロードます。
パブリック メソッド DownloadFileGroupAsyncCancel ファイル非同期ダウンロードキャンセルします
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 (Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 (Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド IsFileGroupDownloaded クライアント コンピュータに、名前付ファイル グループが既にダウンロードされているかどうかチェックします
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 (Object から継承されます。)
パブリック メソッド Update このアプリケーション最新バージョン同期ダウンロードインストール開始します
パブリック メソッド UpdateAsync このアプリケーション最新バージョン非同期ダウンロードインストール開始します
パブリック メソッド UpdateAsyncCancel UpdateAsync によって開始され非同期更新キャンセルします
プロテクト メソッドプロテクト メソッド
パブリック イベントパブリック イベント
  名前 説明
パブリック イベント CheckForUpdateCompleted CheckForUpdateAsync の完了時に発生します
パブリック イベント CheckForUpdateProgressChanged CheckForUpdateAsync呼び出し進行状況更新使用できる場合発生します
パブリック イベント DownloadFileGroupCompleted ファイルダウンロード完了すると、メイン アプリケーション スレッド発生します
パブリック イベント DownloadFileGroupProgressChanged DownloadFileGroupAsync の呼び出しによって開始されファイルダウンロード操作で、ステータス情報使用できる場合発生します
パブリック イベント UpdateCompleted UpdateAsync の呼び出し結果としてClickOnceアプリケーションアップグレード完了したときに発生します
パブリック イベント UpdateProgressChanged UpdateAsync呼び出しによって開始され更新操作についてClickOnce新しステータス情報がある場合発生します
参照参照

関連項目

ApplicationDeployment クラス
System.Deployment.Application 名前空間

その他の技術情報

チュートリアル : デザイナ使用しClickOnce 配置 API必要に応じてアセンブリダウンロードする


このページでは「.NET Framework クラス ライブラリ リファレンス」からapplication deploymentを検索した結果を表示しています。
Weblioに収録されているすべての辞書からapplication deploymentを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からapplication deploymentを検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「application deployment」の関連用語

application deploymentのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



application deploymentのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS