18: Publishing and Updating Applications Using the Prism Library 5.0 for WPF Hands-on Lab(原文)
Microsoft Prism Library 5.0 for WPFの開発者のガイドから
このラボでは、あなたは、複合のPrismのWindows Presentation Foundation (WPF)アプリケーションを、どのように、発行して、配布して、更新するかを学びます。 それは、ClickOnceと一緒に、読み込むために、動的なモジュールを使用します。このラボを完了した後に、あなたは、次のことを行うことができます。:
- l ClickOnceで、既存のWPFのPrismのシェル・アプリケーション・プロジェクトを発行します。
- l 配布のために公開されたアプリケーションに、動的に読み込んだモジュールを追加します。
- l クライアント・コンピュータにアプリケーションを配布します。
- l アプリケーションに更新を発行します。
- l クライアント・コンピュータに更新を配布します。
システム要件
System Requirements
このガイダンスは、Microsoft Windows 8、Windows 7、Windows Vista、Windows Server 2012やWindows Server 2008 OS上で実行するように設計されています。
この手引きを用いてビルドされたWPFアプリケーションは、.NET Framework 4.5を必要とします。
あなたは、Prismライブラリを使用する前に、以下をインストールする必要があります。:- Microsoft Visual Studio 2013 Professional、Premium、あるいは、Ultimate版
- Microsoft .NET Framework 4.5(Visual Studio 2013と一緒にインストールされる)オプション・ツール:
- Visual Studio 2013のためのMicrosoft Blend。
準備
Preparation
このトピックは、あなたに、デフォルトのインストールされたディレクトリ構造の中にある、PrismとPrism QuickStartを持っていることを要求します。 このラボは、ModularityWithUnity.Desktop QuickStartを使用します。それは、Prismのインストールされたソース・コードに、含まれています。
備考
このhands-on labは、Unityコンテナを使用するQuickStartを使用します。 しかし、また、あなたは、QuickStartの拡張管理フレームワーク(MEF)バリアントを使用することができます。
ソリューションをコンパイルします。
- ソリューション・ファイルQuickstarts\Modularity\Desktop\ModularityWithUnity\ModularityWithUnity.Desktop.slnを開きます。
- ソリューションを構築します。
さらに、このラボは、Manifest Manager Utilityを使用します。それは、PrismのCodePlexサイトの http://compositewpf.codeplex.com/releases/view/14771にある、ダウンロードの項目で利用可能です。 あなたは、そのユーティリティのためのソース・コードをダウンロードして、解凍する必要があります。 そして、ラボ後半で、それを使用するために、それを構築します。あなたは、Visual Studioの別々のインスタンスのどちらかから、それを実行することができます。 あるいは、あなたは、一度に構築することができ、そして、実際に、このラボの2つ目のタスクのためのバイナリを実行することができます。
備考
このhands-on labは、あなたが、Prismのモジュール方式と配布の概念について、理解していることを想定しています。 詳細については、モジュール・アプリケーション開発とアプリケーションの配布を参照してください。
手順
Procedures
このラボには、次のタスクが含まれています。:
- Task 1:シェル・アプリケーションの最初のバージョンを発行する
- Task 2:動的にロードしたモジュールアセンブリが含まれるマニフェストを更新する
- Task 3:クライアントマシンに最初のバージョンを配布する
- Task 4:アプリケーションの更新されたバージョンを発行し、マニフェストを更新する
- Task 5:クライアント・コンピュータに、更新されたバージョンを配布する
次の項目では、これらのタスクの各々を説明します。
備考
このhands-on labのための説明は、ModularityWithUnity.Desktopソリューションに配置されています。
Task 1:シェル・アプリケーションの最初のバージョンを発行する
Task 1: Publishing an Initial Version of the Shell Application
このタスクで、あなたは、Visual Studioを使用して、シェル・アプリケーション・プロジェクトの最初のバージョンを発行します。次の手順が、実行されます。:
- ClickOnce発行設定を設定する。このタスクで、あなたは、シェル・プロジェクトのためのプロジェクト設定を再検討して、設定します。ClickOnce配布の動作を決定します。
- 発行者証明書を追加する。このタスクで、あなたは、アプリケーションで、発行しているClickOnceを有効にして、それを関連付けるテスト発行者証明書を作成します。
- アプリケーションを発行する。このタスクで、あなたは、物理的に、Visual Studioから、シェル・アプリケーションを対象とする、配布ディレクトリに発行します。
- 発行された出力を検証する。このタスクで、あなたは、ターゲットディレクトリーで、発行の出力を検証します。
次の手順は、シェル・プロジェクトで、ClickOnce発行設定をどのように、設定するかを説明します。 これらの設定は、両方を最初にインストールする時、そして、アプリケーションのためのアップデート・ポリシーを設定するとき、 ClickOnceの動作を変更します。パブリッシュ設定は、シェル・プロジェクトそのものだけに、関連しています。 なぜなら、それは、ClickOnce配布アプリケーション内の全体として、 アプリケーションの配布動作を決定する、実行可能な、起動アプリケーションです。
ClickOnce発行設定を設定する
- Visual Studioで、ModularityWithUnity.Desktop WPFプロジェクトのための、プロジェクトのプロパティを開きます。 これを実行するには、Solution Explorerで、プロジェクトを右クリックします。 そして、その次に、プロパティをクリックします。プロジェクト設定で、Publishタブをクリックします。 次の図のように、ClickOnce発行設定は表示します。
- http://localhost/PrismDeploymentHOLに、発行フォルダの場所を変更します。 あなたが、ローカルコンピュータに、IISを持っている場合、あなたが、それを行わない場合、 あなたは、あなたが、新しい仮想ディレクトリを作成するために、管理者権限を持っている、他のIISコンピュータに公開することができます。 あるいは、あなたが、まず、そのディレクトリを作成する場合、あなたは、(\\mymachinename\c$\PrismDeploymentHOLのような、) 完全修飾された汎用命名規則(UNC)ファイル・パスを使用することができます。 使用されるアドレスは、ラボの後半で、アプリケーションをインストールするために、使用する1つです。 それで、あなたは、アドレスを書き留めていることを確認します。 このアドレスは、あなたが発行するとき、配布サーバに、 ClickOnceマニフェストとアプリケーション・ファイルをプッシュするために、あなたが使用する物理アドレスです。
- インストール・フォルダのURLを、使用することができます。 外部に公開されたアドレスが、アプリケーションのインストールに使用されている場合、発行するために使用されるものと異なるでしょう。 (たとえば、あなたが、FTPを通じて、サーバの1つに発行する場合、 しかし、ユーザーは、そのサーバで、外部に示されるHTTPパスに配置されるアプリケーションをインストールできるでしょう)。 このパスは、ユーザーに、配布サーバでインストール・アドレスを表示します。 パスが、提供されない場合、それは、あなたが、あなたが公開するために使用した同じアドレスを使用して、 アプリケーションを起動することを想定します。
- インストール・モードと設定は、あなたに、それが構成されるファイルをアプリケーションにインストールする方法を設定するための、きめ細かいオプションを提供します。 (.NET Framework 4.5をインストールするような)あらかじめ必要なインストールがある場合、 それは、更新と多くの他のオプションが、どのように、実行されるか、最初に発生する必要があります。 このラボのために、あなたは、既定の設定を使用するでしょう。それは、オフラインでインストールを使用するために、アプリケーションを設定します。 (少なくとも、それは、起動できることを示しています。 たとえ、あなたが、配布サーバに結合されないとしても、 しかし、それは、あなたのアプリケーションが起動した後、適切に機能するかどうかについて、何をするかに依存しています)。 また、既定の設定は、新しいバージョンが、配布サーバで発見される場合、 起動される前に、自動的に更新するために、アプリケーションを設定します。
- 次の図に示すように、更新ボタンをクリックし、そして、その次に、アプリケーションの更新を確認とラベルの付いた、チェック・ボックスを選択します。
- Optionsダイアログボックスで、Optionsボタンをクリックします。左の枠で、Manifestsをクリックします。 そして、その次に、デスクトップにショートカットを作成するとラベルを付けた、チェック・ボックスを選択します。
- 7. 公開バージョンは、インストールされたClickOnceアプリケーションのための更新の発見を動作します。 通常、あなたは、現実の配布で、このバージョンを明示的に制御します。 このラボのために、あなたは、あなたが発行するたびに、Visual Studioで、自動的に、このバージョン番号を増加できます。
次の手順は、公開されたアプリケーションの署名に使用するための証明書を、どのように、設定するかを説明します。 あなたのアプリケーションが、配布サーバ上で、不正操作されたバージョンに、置き換えることができないことを確認します。 ClickOnceは、あなたが、署名した証明書のX509コードを使用して、ClickOnceマニフェストにデジタル署名する必要があります。 開発目的のために、Visual Studioは、あなたが使用するため、テスト証明書を作成することができます。 製品内の、あなたのアプリケーションに、配置するために、テスト証明書を使用することは、推奨されません。 あなたは、よく知られているものから、証明書を取得する必要があります。 (信頼されたルート)一般に配布されるための認定機関、あるいは、あなたのドメイン管理者から、それを取得します。 内部での配布のため、このラボでは、あなたは、単純に、Visual Studioを使用します。-作成されたテスト証明書。
発行者証明書を追加します
- シェル・プロジェクト・プロパティで、Signingタブをクリックします。
- ClickOnceマニフェストにサインするとラベルをつけられたチェック・ボックスを選択します。 あなたが、以前に、プロジェクトで証明書を作成、あるいは、関連付けていない場合、証明書情報は、まず最初は、空白です。
- Create Test Certificateボタンをクリックします。 次の図に示すように、これは、Create Test Certificateダイアログ・ボックスを開きます。
- パスワードなしで、テスト証明書を離れるために、OKをクリックします。
- 証明書情報は、現在、埋め込まれている必要があります。そして、証明書の名前と発行者は、 あなたのログオンWindowsアカウント情報に基づいています。 あなたが、ファイルとして、既存の証明書を持っている、 あるいは、すでに、あなたの証明書ストアにインストールされている場合、 あなたは、証明書情報の代わりに、ボタン1つで、使用する証明書を選択することができます。
シェル・アプリケーションを公開する
アプリケーションを構築し、それが、予想通りに構築されていることを確認します。 アプリケーションを公開することは、アプリケーションを構築します。 しかし、それは、公開する前に、通常のビルドエラーを解決する方が、より簡単です。
- Visual Studioで、BuildメニューのPublish ModularityWithUnity.Desktopをクリックします。
- Publish Wizardダイアログ・ボックスは、次の図に示すように、あなたが、Step 2で、入力した公開フォルダの位置のアドレスが表示されます。アプリケーションの公開を完了するをクリックします。
- Publish Wizardダイアログ・ボックス
備考
あなたが公開するコンピュータとセキュリティ設定に依存します。 あなたは、Visual Studioが、公開されたアプリケーションを見ることができないと、警告を取得するかもしれません。 これは、単純に、ブラウザを起動、そして、公開した場所のURLに移動できないことを示しています。 しかしながら、アプリケーションは、この時点では、まだ、本当に、インストールする準備ができていません。 なぜなら、あなたは、次のタスクのマニフェストに、動的なモジュールを追加する必要があります。
Task 2:動的にロードしたモジュールアセンブリが含まれるマニフェストを更新する
Task 2: Updating the Manifests to Include Dynamically Loaded Module Assemblies
このタスクで、あなたは、動的なモジュールアセンブリを追加する、配布されたアプリケーションのClickOnceマニフェストを編集するでしょう。 これは、アプリケーション・マニフェストで、アプリケーション・ファイル・リストの編集が含まれています。アプリケーション・マニフェストを保存して、再署名します。 配布マニフェスト内のアプリケーション・マニフェスト参照を更新します。 そして、配布マニフェストを保存して、再署名します。 これらの手順のすべては、個別に実行することができます。 Manifest GeneratingとEditing tool (Mage)という名前の.NET Framework SDKツールを使用して、 しかしながら、Manifest Manager Utilityは、 あなたが、1つの簡単なエディタに、これらの手順を自動化し、Prism CodePlexサイトから、ダウンロードすることができます。 それらを達成するために、あなたは、次のことを行います。:
- 1. Manifest Manager Utilityで、配布マニフェストを開きます。
このタスクで、あなたは、マニフェストの編集を簡素化するために、ユーティリティを実行します。
重要:
あなたは、管理者として、このユーティリティを実行する必要があります。
- マニフェストに、動的に読み込んだモジュールを追加します。このタスクで、 あなたは、動的に、モジュールアセンブリをマニフィストに配置し、そして、追加します。 そして、それらを取得し、公開する位置を配布します。
- マニフェストを保存し、そして、署名します。このタスクで、 あなたは、マニフェストを保存して、再署名するためのClickOnceマニフェストに署名するために、使用する発行者証明書を選択します。
次の手順は、ダイナミック・モジュール・アセンブリを、ClickOnceマニフェストに、どのように、追加するかを説明します。
Manifest Manager Utilityで、配布マニフェストを開くために
- あなたが、すでに、それを行っていない場合、PrismのCodePlexサイトhttp://compositewpf.codeplex.com/releases/view/14771のダウンロード項目から、 最も新しいManifest Manager Utilityをダウンロードします。そして、それを、お使いのコンピュータ上で、作業ディレクトリに、unzipします。
- Visual Studio 2013で、ファイルManifestManagerUtility.slnを開いて、構築して、実行します。
重要:
あなたは、管理者として、このユーティリティを実行する必要があります。 あなたが、Visual Studioから、これを実行する場合、あなたは、管理者としてVisual Studioを開始する必要があります。
- ファイルメニューで、Openをクリックします。そして、その次に、あなたが、以前のタスクで、QuickStartを公開した、公開フォルダの位置に移動します。 そのフォルダで、配布マニフェスト・ファイルModularityWithUnity.Desktop.applicationを選択します。そして、その次に、Openをクリックします。
- 配布とリンクしたアプリケーション・マニフェスト・ファイルは、ユーティリティで開かれます。 そして、次の図に示すように、ユーティリティの統一されたViewで表示されるでしょう。 あなたは、シェル実行ファイルと一部ではないフレームワークが、自動的に含まれている、すべての参照されたアセンブリを見ることができます。 それらが、QuickStartで静的に読み込まれることで、参照されるため、モジュールAとCが、含まれていることに注意してください。 しかし、あなたは、ユーティリティを使用する、追加のモジュールを追加する必要があります。
動的に読み込んだモジュールをマニフェストに追加するには
- Editメニューで、Add Filesをクリックします。
- Add Application Filesダイアログボックスで、 (C:\temp\ModularityWithUnity\ModuleB\bin\Debug\のような)Module Bのビルド出力フォルダに移動します。 そして、モジュールDLL(ModularityWithUnity.Desktop.ModuleB.dllのような)を選択します。 Add Application Filesダイアログボックスで、モジュールDLLをマニフェストに追加するために、Openをクリックします。
- あなたが、Openをクリックするとき、Browse For Folderダイアログ・ボックスが、表示されます。 このダイアログボックスで、あなたは、モジュール・ファイルを公開フォルダへコピーするために、インストール先のフォルダを指定することができます。 モジュールBとDは、ディレクトリ・スキャンを通してQuickStartに読み込まれます。そして、ブートストラッパーは、 それが、実行ファイルから、.\DirectoryModulesの走査するフォルダを相対パスに設定します。 これは、同じ相対パス内の公開されたアプリケーションで、ファイルが、必要なことを示しています。
- バージョン固有のアプリケーション・ファイル・フォルダを選択します。 そして、その次に、ダイアログ・ボックスの下にある、Make New Folderボタンをクリックします。
- 新しいフォルダDirectoryModulesに名前をつけます。
- 新しいフォルダが、選択されていることを確認し、そして、「OK」をクリックします。 次の図に示すように、これは、アプリケーション・ファイルのDirectoryModulesサブフォルダに、Module B DLLをコピーします。
- Browse For Folderダイアログ・ボックスで、DirectoryModulesサブフォルダを選択します。
- Module Dをマニフェストに追加するために、そして、DirectoryModulesサブフォルダに、それを配置するために、前述の手順を繰り返します。
- Module EとFをマニフェストに追加するために、前述の手順を繰り返します。 しかし、それらは、両方とも、Application Filesフォルダーのルート(ModularityWithUnity.Desktop_1_0_0_0)に、入ります。
- ここで重要な点は、次の図に示すように、追加のモジュールは、Modules BとDの相対パスを示して、 Manifest Manager Utility内に、一覧にする必要があります。(順番は重要でありません)。
Manifest Managerユーティリティと一緒に、Modules B、D、EとFが追加されました。
マニフェストを署名して、保存します
- ユーティリティのツールバーのSaveボタンをクリックします。これは、Sign Manifestダイアログ・ボックスに、選択した発行者証明書を開きます。
- Browseボタンをクリックします。そして、その次に、ModularityWithUnity.Desktop_TemporaryKey.pfxファイルを配置して、選択します。 それは、あなたが、このラボの最初のタスクで、プロジェクトにテスト証明書を追加したとき、作成されました。
- 再び、パスワードを空白のまま、保存と署名ボタンをクリックします。
ここで重要な点は、あなたは、変更したマニフェスト・ファイルで、アプリケーションをうまく公開しまし、そして、インストールする準備ができました。
Task 3:クライアント・コンピュータに最初のバージョンを配布する
Task 3: Deploying the Initial Version to a Client Computer
このタスクで、あなたは、アプリケーションを起動して、インストールするでしょう。
アプリケーションを起動して、インストールします。
- (http://localhost/PrismDeploymentHOL/ModularityWithUnity.Desktop.applicationのような)配布マニフェスト(.applicationファイル)のパスを、 その最後に、追加する公開フォルダの位置として、Internet Explorerブラウザ・ウインドウを開いて、あなたが使用したアドレスを入力します。
- 次の図に示すように、ClickOnceが、アプリケーションのために、マニフェストをダウンロードするので、 Launching Applicationダイアログ・ボックスは、簡単に、表示されます。
- 次の図に示すように、セキュリティ警告が、表示されます。それは、このアプリケーションの発行者が誰なのか、ユーザーに知らせます。 あなたが、テスト証明書を使用しているため、それは、未知の発行者を示します。 より使いやすいセキュリティ警告を取得するには、あなたは、信頼されたルート証明機関から出される証明書を必要とします。
- Installをクリックします。アプリケーション・ファイルの残りの部分が、ダウンロードされて、起動されている間、 あなたは、次の図に示すように、簡単に、プログレス・バーでダイアログ・ボックスを確かめるでしょう。
- QuickStartを、起動する必要があります。そして、あなたは、それが開始するとき、モジュールAとDが、読み込まれることを見る必要があります。
あなたは、要求に応じて読み込むための、他のモジュールを取得するために、他の四角形をクリックすることができます。
Task 4:アプリケーションの更新されたバージョンを発行し、マニフェストを更新する
Task 4: Publishing an Updated Version of the Application and Updating the Manifests
このタスクで、あなたは、簡単な、表示の変更を、アプリケーションに作成し、 そして、新しいバージョンを公開するでしょう。これを達成するために、あなたは、次のことを行います。:
- アプリケーションのタイトルを修正します。このタスクで、あなたは、アプリケーションの一番上で、変更されたバージョンを示す、大規模なテキストを変更します。 これは、簡単に、アプリケーションに表示の変更を与えます。それで、あなたは、次のタスクで、更新されたアプリケーションの起動を検証することができます。
- アプリケーションの新しいバージョンを公開します。このタスクで、あなたは、新しい公開バージョンで、あらためて、アプリケーションを公開します。 それで、配布サーバのアプリケーションの新しいバージョンのClickOnceの更新の確認を確かめるでしょう。
- マニフェストを更新します。このタスクで、あなたは、再び、配布するために、ModulesB、D、EとFを再度追加する、 マニフェスト・マネージャー・ユーティリティを使用するでしょう。 なぜなら、あなたが、再公開するたびに、マニフェストは、シェルから参照アセンブリに基づいてVisual Studioで、再生成します。
次の手順は、更新されたバージョンを、どのように、公開するかを説明します。
アプリケーションのタイトルを修正する
- ModularityWithUnity.Desktopプロジェクトで、開き、デザイナーで、Shell.xamlファイルを開きます。
- Unity QuickStart-デスクトップ-を変更し、モジュール方式を読み込むウィンドウのTitleプロパティを修正します。
- ソリューションを保存して、構築します。
- Buildメニューで、Publish ModularityWithUnity.Desktopをクリックします。
- Publish Wizardで、Finishをクリックします。
- あなたが、Task 1で、最初に、公開したとき、新しいバージョンは公開されています。 そして、Visual Studioは、公開バージョンを自動で増加させるため、公開バージョン番号は1.0.0.1です。
新しいバージョンのためのマニフェストを更新します
- あらためてManifest Manager Utilityを開きます。
- ファイルメニューで、Openをクリックします。そして、その次に、あらためてModularityWithUnity.Desktop.application配布マニフェストを配置して、開きます。 (Manifest Manager Utilityは、あなたがマニフェストを開いた最後の時から、位置を覚えている必要があります。 )あなたは、マニフェスト・バージョンが、現在、1.0.0.1であり、 そして、Modules B、D、EとFが再び、失われていることを確認する必要があります。
- Editメニューで、Modules Bアセンブリを選択するために、Add Filesをクリックします。
- Browse For Folderダイアログ・ボックスが表示されると、新しい公開されたバージョンのApplication Filesフォルダーに行きます。 (ModularityWithUnity.Desktop_1_0_0_1)、DirectoryModulesサブフォルダを作成します。 そして、その次に、相対パス内に、Module Bを配置するために、それを選択します。
- Module Dのために、Steps 3と4を繰り返します。また、DirectoryModulesサブフォルダに、それを配置します。
- Modules EとFのために、Steps 3と4を繰り返しますが、DirectoryModulesサブフォルダではなく、 ModularityWithUnity.Desktop_1_0_0_1ディレクトリに、それらを配置します。
- ツールバー上で、Saveボタンをクリックします。
- Manifest Manager Utilityは、パスを、あなたが、最初のバージョンを公開するために使用した発行者証明書ファイルに覚えておく必要があります。 それで、あなたは、SaveとSignボタンをクリックすることができます。
新しいバージョンは、公開されて、配布する準備ができています。
Task 5:クライアント・コンピュータに、更新されたバージョンを配布する
Task 5: Deploying the Updated Version to a Client Computer
- 1. あなたが、アプリケーションの最初のバージョンをインストールしたとき、 (ModularityWithUnity.Desktop)作成された、あなたのデスクトップに、ショートカットを配置します。 そして、その次に、クライアント・コンピュータからアプリケーションを起動するために、それをクリックします。
- 2. Update Availableダイアログ・ボックスが、表示されます。 次の図に示すように、更新を受け入れるために、OKをクリックします。
あなたは、それが起動した後に、アプリケーションの変更されたタイトルを確認する必要があります。