原文「Publishing and Updating Applications Using the Prism Library for WPF Hands-on Lab」
このラボでは、あなたは、ClickOnceと一緒に、読み込むために、動的なモジュールを使用する複合のPrismのWindows Presentation Foundation (WPF)アプリケーションを、どのように、発行して、配布して、更新するかを学びます。このラボを完了した後に、あなたは、次のことを行うことができます。:
- ClickOnceで、既存のWPFのPrismのシェル・アプリケーション・プロジェクトを発行します。
- 配布のために公開されたアプリケーションに、動的に読み込んだモジュールを追加します。
- クライアント・コンピュータにアプリケーションを配布します。
- アプリケーションに更新を発行します。
- クライアント・コンピュータに更新を配布します。
システム要件
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と一緒にインストールされる)
- オプション・ツール:
準備
Preparation
このトピックは、あなたに、デフォルトのインストールされたディレクトリ構造の中にある、PrismとPrism QuickStartを持っていることを要求します。このラボは、Prismのインストールされたソース・コードに含まれているModularityWithUnity.Desktop QuickStartを使用します。
備考: このhands-on labは、Unityコンテナを使用するQuickStartを使用しますが、また、あなたは、QuickStartの拡張管理フレームワーク(MEF)バリアントを使用することができます。
ソリューションをコンパイルします。
To compile the solution
- ソリューション・ファイル\Quickstarts\Modularity\Desktop\ModularityWithUnity\ModularityWithUnity.Desktop.slnを開きます。
- ソリューションを構築します。
さらに、このラボは、PrismのCodePlexサイトのhttp://compositewpf.codeplex.com/releases/view/14771にある、ダウンロードの項目で利用可能な、Manifest Manager Utilityを使用します。あなたは、そのユーティリティのためのソース・コードをダウンロードして、解凍する必要があります。そして、ラボ後半で、それを使用するために、それを構築します。あなたは、Visual Studioの別々のインスタンスのどちらかから、それを実行することができます。あるいは、あなたは、一度に構築することができ、そして、実際に、このラボの2つ目のタスクのためのバイナリを実行することができます。
備考: このhands-on labは、あなたが、Prismのモジュール方式と配布の概念について、理解していることを想定しています。詳細については、モジュール・アプリケーション開発と[アプリケーションを配布する]10-Deploying.mdを参照して下さい。
手順
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発行設定を設定する
To set the ClickOnce publish settings
- Visual Studioで、ModularityWithUnity.Desktop WPFプロジェクトのための、プロジェクトのプロパティを開きます。これを実行するには、Solution Explorerで、プロジェクトを右クリックします。そして、その次に、プロパティをクリックします。プロジェクト設定で、Publishタブをクリックします。次の図のように、ClickOnce発行設定は表示します。
あなたが、ローカルコンピュータに、IISを持っている場合、http://localhost/PrismDeploymentHOLに、公開フォルダの場所を変更します。
- あなたが、それを行わない場合、あなたは、あなたが、新しい仮想ディレクトリを作成するために、管理者権限を持っている、他のIISコンピュータに公開することができます。あるいは、あなたが、まず、そのディレクトリを作成する場合、あなたは、(\\mymachinename\c$\PrismDeploymentHOLのような)完全修飾された汎用命名規則(UNC)ファイル・パスを使用することができます。使用されるアドレスは、ラボの後半で、アプリケーションをインストールするために、使用する1つです。それで、あなたは、アドレスを書き留めていることを確認します。このアドレスは、あなたが発行するとき、配布サーバに、ClickOnceマニフェストとアプリケーション・ファイルをプッシュするために、あなたが使用する物理アドレスです。
- インストール・フォルダのURLを、使用することができます。公開用のために使われる外部に公開するアドレスが、異なるアプリケーションのインストールのために使用される場合、(たとえば、あなたが、FTPを通じて、サーバの1つに発行する場合、しかし、ユーザーは、そのサーバで、外部に示されるHTTPパスに配置されるアプリケーションをインストールできるでしょう)。このパスは、ユーザーに、配布サーバでインストール・アドレスを表示します。パスが、提供されない場合、それは、あなたが、あなたが公開するために使用した同じアドレスを使用して、アプリケーションを起動することを想定します。
- インストール・モードと設定は、あなたに、アプリケーションをインストールする方法を設定するための、きめ細かいオプションを提供します。それが構成されるファイル、(.NET Framework 4.5をインストールするような)あらかじめ必要なインストールがある場合、それは、更新と多くの他のオプションが、どのように、実行されるか、最初に発生する必要があります。このラボのために、あなたは、オフラインでインストールを使用するために、アプリケーションを設定する既定の設定を使用するでしょう。(たとえ、あなたが、配布サーバに結合されないとしても、少なくとも、それは、起動できることを示していますが、起動後にアプリケーションが正常に機能するかどうかは、アプリケーションによって異なります)。
- また、既定の設定は、新しいバージョンが、配布サーバで発見される場合、起動される前に、自動的に更新するために、アプリケーションを設定します。
- 次の図に示すように、更新ボタンをクリックし、そして、その次に、アプリケーションの更新を確認とラベルの付いた、チェック・ボックスを選択します。
- Optionsボタンをクリックします。Optionsダイアログボックスで、左の枠で、Manifestsをクリックします。そして、その次に、デスクトップにショートカットを作成するとラベルを付けた、チェック・ボックスを選択します。
- 公開バージョンは、インストールされたClickOnceアプリケーションのための更新の発見を動作します。通常、あなたは、現実の配布で、このバージョンを明示的に制御します。このラボのために、あなたは、あなたが発行するたびに、Visual Studioで、自動的に、このバージョン番号を増加できます。
次の手順は、公開されたアプリケーションの署名に使用するための証明書を、どのように、設定するかを説明します。あなたのアプリケーションが、配布サーバ上で、不正操作されたバージョンに、置き換えることができないことを確認します。ClickOnceは、あなたが、署名した証明書のX509コードを使用して、ClickOnceマニフェストにデジタル署名する必要があります。開発目的のために、Visual Studioは、あなたが使用するため、テスト証明書を作成することができます。製品内の、あなたのアプリケーションに、配置するために、テスト証明書を使用することは、推奨されません。 あなたは、よく知られているものから、一般の配布のための認定機関や内部の配布のためにあなたのドメイン管理者から取得する証明書(信頼されたルート)を取得する必要があります。このラボでは、あなたは、単純に、Visual Studioを使用します。-作成されたテスト証明書。
発行者証明書を追加します
To add a publisher certificate
- シェル・プロジェクト・プロパティで、Signingタブをクリックします。
- ClickOnceマニフェストにサインするとラベルをつけられたチェック・ボックスを選択します。あなたが、以前に、プロジェクトで証明書を作成、あるいは、関連付けていない場合、証明書情報は、まず最初は、空白です。
- Create Test Certificateボタンをクリックします。次の図に示すように、これは、Create Test Certificateダイアログ・ボックスを開きます。
- パスワードなしで、テスト証明書を離れるために、OKをクリックします。
- 証明書情報は、現在、埋め込まれている必要があります。そして、証明書の名前と発行者は、あなたのログオンWindowsアカウント情報に基づいています。あなたが、ファイルとして、既存の証明書を持っている、あるいは、すでに、あなたの証明書ストアにインストールされている場合、あなたは、証明書情報の代わりに、ボタン1つで、使用する証明書を選択することができます。
シェル・アプリケーションを公開する
To publish the shell application
アプリケーションを構築し、それが、予想通りに構築されていることを確認します。アプリケーションを公開することは、アプリケーションを構築しますが、それは、公開する前に、通常のビルドエラーを解決する方が、より簡単です。
Visual Studioでは、BuildメニューのPublish ModularityWithUnity.Desktopをクリックします。
Publish Wizardダイアログ・ボックスは、次の図に示すように、あなたが、Step 2で、入力した公開フォルダの位置のアドレスが表示されます。 アプリケーションを公開を完了するをクリックします。
備考: あなたが公開するコンピュータとセキュリティ設定に依存します。あなたは、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ツールを使用して、個別に実行することができます。しかしながら、Prism CodePlexサイトからダウンロードできるマニフェストマネージャユーティリティは、これらのステップを1つの簡単なエディタで自動化します。それらを達成するために、あなたは、次のことを行います。:
- Manifest Manager Utilityで、配布マニフェストを開きます。このタスクで、あなたは、マニフェストの編集を簡素化するために、ユーティリティを実行します。
重要:あなたは、管理者として、このユーティリティを実行する必要があります。
- マニフェストに、動的に読み込んだモジュールを追加します。このタスクで、あなたは、動的に、モジュールアセンブリをマニフィストに配置し、そして、追加します。そして、それらを取得し、公開する位置を配布します。
- マニフェストを保存し、そして、署名します。このタスクで、あなたは、マニフェストを保存して、再署名するためのClickOnceマニフェストに署名するために、使用する発行者証明書を選択します。
次の手順は、ダイナミック・モジュール・アセンブリを、ClickOnceマニフェストに、どのように、追加するかを説明します。
Manifest Manager Utilityで、配布マニフェストを開くために
To open the deployment manifest in the Manifest Manager Utility
- あなたが、すでに、それを行っていない場合、http://compositewpf.codeplex.com/releases/view/14771で、PrismのCodePlexサイトのダウンロード項目から、最も新しいManifest Manager Utilityをダウンロードします。そして、それを、お使いのコンピュータ上で、作業ディレクトリに、unzipします。
- Visual Studio 2013で、ファイルManifestManagerUtility.slnを開いて、構築して、実行します。
重要: あなたは、管理者として、このユーティリティを実行する必要があります。あなたが、Visual Studioから、これを実行する場合、あなたは、管理者としてVisual Studioを開始する必要があります。
- ファイルメニューで、Openをクリックします。そして、その次に、あなたが、以前のタスクで、QuickStartを公開した、公開フォルダの位置に移動します。そのフォルダで、配布マニフェスト・ファイルModularityWithUnity.Desktop.applicationを選択します。そして、その次に、Openをクリックします。
- 配布とリンクしたアプリケーション・マニフェスト・ファイルは、ユーティリティで開かれます。そして、ユーティリティの統一されたViewで表示されるでしょう。次の図に示すように、あなたは、シェル実行ファイルと一部ではないフレームワークが、自動的に含まれてる、すべての参照されたアセンブリを見ることができます。それらが、QuickStartで静的に読み込まれることで、参照されるため、モジュールAとCが、含まれていますが、あなたは、ユーティリティを使用する、追加のモジュールを追加する必要があることに注意してください。
動的に読み込んだモジュールをマニフェストに追加するには
To add the dynamically loaded modules to the manifest
- 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をコピーします。
- Module Dをマニフェストに追加するために、そして、DirectoryModulesサブフォルダに、それを配置するために、前述の手順を繰り返します。
- Module EとFをマニフェストに追加するために、前述の手順を繰り返します。しかし、それらは、両方とも、Application Filesフォルダーのルート(ModularityWithUnity.Desktop_1_0_0_0)に、入ります。
- ここで重要な点は、次の図に示すように、追加のモジュールは、Modules BとDの相対パスを示して、Manifest Manager Utility内に、一覧にする必要があります。(順番は重要でありません)。
To sign and save the manifests
- ユーティリティのツールバーのSaveボタンをクリックします。これは、Sign Manifestダイアログ・ボックスに、選択した発行者証明書を開きます。
- Browseボタンをクリックし、そして、その次に、あなたが、このラボの最初のタスクで、プロジェクトにテスト証明書を追加したとき、作成されたModularityWithUnity.Desktop_TemporaryKey.pfxファイルを配置して、選択します。
- 再び、パスワードを空白のまま、保存と署名ボタンをクリックします。
ここで重要な点は、あなたは、変更したマニフェスト・ファイルで、アプリケーションをうまく公開しまし、そして、インストールする準備ができました。
Task 3:クライアント・コンピュータに最初のバージョンを配布する
Task 3: Deploying the Initial Version to a Client Computer
このタスクで、あなたは、アプリケーションを起動して、インストールするでしょう。
アプリケーションを起動して、インストールします。
To launch and install the application
(http://localhost/PrismDeploymentHOL/ModularityWithUnity.Desktop.applicationのような)配布マニフェスト(.applicationファイル)のパスを、その最後に、追加する公開フォルダの位置として、Internet Explorerブラウザ・ウインドウを開いて、あなたが使用したアドレスを入力します。次の図に示すように、ClickOnceが、アプリケーションのために、マニフェストをダウンロードするので、Launching Applicationダイアログ・ボックスは、簡単に、表示されます。
次の図に示すように、セキュリティ警告が、表示されます。それは、このアプリケーションの発行者が誰なのか、ユーザーに知らせます。あなたが、テスト証明書を使用しているため、それは、未知の発行者を示します。より使いやすいセキュリティ警告を取得するには、あなたは、信頼されたルート証明機関から出される証明書を必要とします。
インストールをクリックします。アプリケーション・ファイルの残りの部分が、ダウンロードされて、起動されている間、次の図に示すように、あなたは、簡単に、プログレス・バーでダイアログ・ボックスを確かめるでしょう。
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で、再生成します。
次の手順は、更新されたバージョンを、どのように、公開するかを説明します。
アプリケーションのタイトルを修正する
To modify the title of the application
- ModularityWithUnity.Desktopプロジェクトで、開き、デザイナーで、Shell.xamlファイルを開きます。
- Unity QuickStartで、モジュール方式を読み込むウィンドウのTitleプロパティを修正します。-デスクトップ-修正されます。
- ソリューションを保存して、構築します。
アプリケーションの新しいバージョンを公開します。
To publish the new version of the application
- Buildメニューで、Publish ModularityWithUnity.Desktopをクリックします。
- Publish Wizardで、Finishをクリックします。
- あなたが、Task 1で、最初に、公開したとき、Visual Studioは、公開バージョンを自動インクリメントしたため、新しいバージョンは公開され、そして、公開バージョン番号は1.0.0.1です。
新しいバージョンのためのマニフェストを更新します
To update the manifests for the new version
- あらためてManifest Manager Utilityを開きます。
- Fileメニューで、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
このタスクで、あなたは、クライアント・コンピュータとして、アプリケーションを起動し、自動的に更新されることを確認します。
クライアント・コンピュータに、更新されたバージョンを配布します。
To deploy the updated version to a client computer
- 最初のバージョンのアプリケーションをインストールしたときに作成されたデスクトップ上のショートカットを探します。(ModularityWithUnity.Desktop)、そして、その次に、クライアント・コンピュータからアプリケーションを起動するために、それをクリックします。
- 次の図に示すように、Update Availableダイアログ・ボックスが、表示されます。更新を受け入れるために、OKをクリックします。
- あなたは、それが起動した後に、アプリケーションの変更されたタイトルを確認する必要があります。