10: Deploying Applications Using the Prism Library 5.0 for WPF(原文)
Microsoft Prism Library 5.0 for WPFの開発者のガイドから
製品に、効率よくPrismアプリケーションを移動するには、あなたは、アプリケーションの設計工程の一部として、配布するために、計画する必要があります。 このトピックは、注意事項と動作を取り扱います。 あなたは、配布と動作のために、あなたの複合、あるいは、モジュール・アプリケーションを実行する必要があります。 あなたは、ユーザーの手で、アプリケーションを取得する必要があります。
WPFのPrismアプリケーションを配布する
Deploying WPF Prism Applications
WPFのPrismアプリケーションは、実行可能な、そして、多くの追加のDLLで構成することができます。 実行可能なmainは、シェル・アプリケーション・プロジェクトです。いくつかの追加のDLLは、アプリケーションのモジュールです。 いくつかの追加のDLLが、あるかもしれません。それは、ちょうど今、アプリケーションのシェルとモジュールで使用される共有アセンブリです。 加えて、あなたは、一そろいのリソースやコンテンツ・ファイルを持っているかもしれません。 それは、アプリケーションと一緒に配布されて、取得します。
WPFのPrismアプリケーションを配布するために、あなたは、3つの選択肢を持っています。:
- 「XCopy配布」
- ClickOnce配布
- Windowsインストーラ配布
「XCopy配布」は、XCOPYコマンド・ライン・ツールの使用が、含まれていても、含まれていなくても構いませんが、 いくつかのファイルコピー操作の一種を通して、手動で配布するための一般的な用語として使用されています。 あなたが、この方法で、アプリケーションを配布することを選択をする場合、それは、手動でファイルをパッケージ化する、 そして、それらを対象とするコンピュータに移動することは、あなた次第です。 アプリケーションは、実行される間、期待されるフォルダ構造、そして、シェル・アプリケーション、 モジュールDLLが、実行可能な相対的に位置に準備され、そして、コンテンツ・ファイルは保持されている必要があります。
通常、配布のより多くの自動的な手段は、正しい位置に配置されていることを確認するように要求します。 そして、ユーザーは、アプリケーションを実行するために、簡単にアクセスできます。 それを容易にするために、あなたは、ClickOnceを使用する、あるいは、Windowsインストーラ(.msiファイル)を選択できます。 アプリケーションに存在する、追加のインストール要求に依存します。
ClickOnce、あるいは、Windowsインストーラを使用するべきかどうかの判断は、多くの場合、誤解されています。 ClickOnceは、フリーサイズの配布技術であることを意図していません。 それは、アプリケーションのために、クライアント・コンピュータに、インストールの小さな影響が必要なことが意図されています。 あなたのアプリケーションが、インストールされるとき、コンピュータに幅広い変更をする必要がある場合、-ドライバをインストールするような、他のアプリケーションと統合されます。 サービスと他のものをインストールします。それは、実際に、あなたの実行可能形式を実行する範囲外になります。 しかしながら、あなたが、クライアント・コンピュータで、軽量のインストールがある場合、ClickOnceは、おそらく、適切な配布のための選択肢でありません。
あなたが、WPFアプリケーションのネットワーク配布と更新から恩恵を受けたい場合、ClickOnceは、素晴らしい選択になります。
あなたのアプリケーションのためのWindowsインストーラ配布パッケージ(.msiファイル)を作成するためには、あなたは、いろいろな選択肢を持っています。 Visual Studioのセットアップ・プロジェクト、WindowsインストーラXML(WiX)プロジェクト、 あるいは、数多くのサードパーティ製のインストーラ作成製品が含まれています。
ClickOnceで、WPFのPrismアプリケーションを配布する。
Deploying WPF Prism Application with ClickOnce
ClickOnceは、バージョン2.0から.NET Frameworkの一部であり、Windows Presentation Foundation (WPF)、 あるいは、Windowsフォームの展開機構です。 ClickOnceは、配布サーバからネットワーク経由で、WPFアプリケーションの自動配布と更新を可能にします。 WPFのPrismアプリケーションは、クライアント・コンピュータに配布される、 シェル、モジュール、そして、他のどんな依存関係を手に入れるために、ClickOnceを使用することができます。 Prismアプリケーションの中心となる課題は、ClickOnceは、発行されたアプリケーション内で、 動的に読み込まれた公開されたモジュールが自動的に含まれていないためのVisual Studio発行処理です。
ClickOnceにおけるWPFアプリケーションの配布は、2段階の工程です。まず、あなたは、Visual Studioから、アプリケーションを公開する必要があります。 そして、その次に、あなたは、クライアント・コンピュータに、それを配布することができます。アプリケーションを発行すると、2つのマニフェストを作成します。 (配布マニフェストとアプリケーション・マニフェスト)、そして、それは、ディレクトリを発行するために、アプリケーション・ファイルをコピーします。 その公開フォルダは、続いて、クライアント・コンピュータにアクセスできる、公開されたアプリケーションを作成する開発者のコンピュータから、 知っている位置とURLから、直接アクセスできない、他のサーバへ移動することができます。ユーザーが、移動することができるために、 単純に、必要とするURLやリンクを提供して、アプリケーションを、クライアント・コンピュータに配布します。 URLは、発行する配布サーバ上の、配布マニフェストを示しています。そのURLが、ブラウザで読み込まれるとき、 クライアント・コンピュータ上のClickOnceは、マニフェストとマニフェストによって指定したアプリケーションファイルをダウンロードします。 ファイルが、ユーザープロファイルの下にダウンロードされ、そして、格納されたあと、ClickOnceは、続いて、アプリケーションを立ち上げます。 後に続く更新が、配布サーバに発行される場合、ClickOnceは、自動的に、それらの更新、ダウンロードを発見し、そして、それらを適用する、あるいは、設定することができます。 アプリケーションが起動したあと、あなたが、要求に応じて、あるいは、背後で、発見、そして、更新を適用できます。
あなたが、WPFのPrismアプリケーションを発行するとき、それは、動的に、読み込み済みのモジュールを持っています。 シェル・プロジェクトは、一般的に、動的にモジュールを読み込むための、プロジェクト参照を持ていません。 その結果、また、公開されたClickOnceアプリケーション・マニフェストは、それらのモジュール・ファイルが含まれていません。 そして、あなたが、ClickOnceを使用して、アプリケーションを配布する場合、クライアント・コンピュータは、モジュール・ファイルを手に入れないでしょう。 これに対処するために、あなたは、モジュール・ファイルが含まれるために、 シェル・アプリケーション・プロジェクトによって参照されないアプリケーション・マニフェストを変更する必要があります。
ClickOnce発行工程
ClickOnce Publishing Process
あなたは、Visual Studio 2013から、Manifest Generatingという名前のWindows Software Development Kit (SDK)ツール、 Editingツール(Mage)やClickOnce発行APIを使用するカスタム・ツールを使用して、ClickOnceアプリケーションを発行することができます。 Visual Studioは、発行するClickOnceのための必要な機能のほとんどを公開します。 しかしながら、Visual Studioは、サーバで、ClickOnce配布を管理するIT管理者のために、できない、あるいは、望まないかもしれません。 Mageは、ClickOnceのために、ほとんどの共通の管理業務を対処するように設計します。;それは、あなたの管理者に与えることができる、 軽量の.NET FrameworkのWindowsベース・アプリケーションです。しかしながら、知恵者は、あまりに多くの詳細な手順を必要とします。正しい注文で、うまく完了した共通のタスクに、実行されます。 アプリケーション・マニフェストの一覧を示す、アプリケーションファイルを変更することのような、より簡単に、これらのタスクを作成するために、カスタム・ユーティリティが必要です。
マニフェスト・マネージャー・ユーティリティ・サンプル・ユーティリティは、より単純な方法で、配布とアプリケーション・マニフェストを管理するために、 ClickOnce発行APIをどのように、使用するのか、デモンストレーションをします。 このユーティリティは、一つのユーザー・インターフェイス(UI)で、アプリケーション・マニフィスト・ファイル・リストを更新する、 そして、マニフィスト設定を配布するために使用されます。そして、その使用することは、このトピックの後の、 Prismアプリケーションの最初の配布、そして、更新のための項目の中で説明します。 マニフェスト・マネージャー・ユーティリティで使用されるAPIは、読込、操作するための、Microsoft.Build.Tasks.Deployment名前空間を公開します。 そして、ClickOnce配布のために、変更されたマニフェスト・ファイルを保存します。 あなたは、Codeplex上で、Prismのコミュニティ・サイトから、マニフェスト・マネージャー・ユーティリティ(外部サイト)をダウンロードすることができます。 動的なモジュール読み込みを使用して、WPFのPrismアプリケーションを発行、そして、更新するために必要な具体的な手順を学ぶために、WPFのPrismの配布のhands-on lab(外部サイト)を参照してください。: ClickOnceで、公開と更新します。
次の図は、Visual Studioが、配布フォルダを作成する方法に基づいて、ClickOnceアプリケーションの配布の代表的な構造を示しています。 あなたが、ClickOnceによるアプリケーションを発行するとき、それには、既定の配布マニフェスト(.applicationファイル)が含まれているアプリケーションのための、ルート・フォルダが含まれています。 通常、既定の配布マニフェストは、最も最近発行されたバージョンを示しています。 Visual Studioで作成されるとき、しかし、それは、管理者が選択する、どのバージョンでも指すために、変更されることができます。 また、ルート・フォルダは、Setup.exeブートストラッパーが含まれています。それは、あなたが、アプリケーションのための前提条件を配布することができます。 それは、インストーラ、あるいは、実行可能形式を必要とするかもしれません。 ClickOnceを使用して、アプリケーションを配布する前に実行するために、 それは、続いて、アプリケーション固有のファイルのための、あなたが、発行する下で、あなたは、それぞれのバージョンのために、分離したサブフォルダを取得する、サブフォルダです。 公開バージョンは、全体として、配布されたバージョン管理とは、対照的に、含まれるアセンブリのそれぞれのアセンブリ・バージョン、 配布マニフェスト・ファイルの分離したプロジェクト設定とエントリです。クライアントから、入手可能な更新があるとき、 公開バージョンは、判断するために、ClickOnceによって使用されます。それは、ClickOnceアプリケーションを、すでにインストールしています。
ClickOnceは、フォルダ構造を発行する
ClickOnce publish folder structure
各々の公開バージョンのアプリケーションファイル・フォルダの下で、あなたは、配布マニフェスト(.applicationファイル)の他のコピーを持っています。 それは、クライアント・コンピュータに具体的なバージョンを配布するために、使用することができます。 あるいは、それは、ルート・フォルダに、以前のバージョンに、サーバー側をロールバックをさせるために、コピーすることができます。 実行可能なアプリケーションに、(Prismモジュールアセンブリのような)どんなに依存したライブラリ、そして、リソース・ファイルを追加しても、また、このフォルダの中にあるでしょう。 そして、自動的に、.deployファイル名拡張子の最後に付けられます。 Visual Studioで発行されるとき、これは、ウェブサーバを発行することに、ファイル拡張子マッピングを簡素化するために、行われます。 そして、あなたは、アプリケーションを構成する、.dll、.exe、そして、さまざまな、他のポテンシャル・ファイルタイプをダウンロードできません。
また、アプリケーション・マニフェスト(.exe.manifest)ファイルは、このフォルダに、含まれています。 そして、配布マニフェストによって、参照されます。 これは、アプリケーションが、変化検出を支援するために、ファイルごとのハッシュ値と構成されるファイルの一覧が含まれています。; また、それには、実行するアプリケーションによって、必要な権限のリストが含まれています。 なぜなら、ClickOnceは、必要に応じて、部分的に信頼するAppDomainで、アプリケーションを起動することができます。
あなたが、ClickOnceアプリケーションの配布を、Mage、あるいは、カスタム・ツールのどちらかを使用して、 手動で、作成、あるいは、更新する場合、あなたは、このフォルダとファイル構造に拘束されません。 個々のClickOnceによる公開のための依存関係のセットは、次のものが含まれています。:
それには、それは、URLに基づいた、組み込まれたコードを通して、アプリケーション・マニフェストを示しす配布マニフェストが含まれています。
- それには、アプリケーション・マニフェストが含まれています。
- それには、アプリケーションファイルの各々への相対パスが含まれています。 これらのファイルは、アプリケーション・マニフェストが存在する、同じフォルダ、あるいは、サブフォルダに存在する必要があります。
それには、アプリケーションファイル自体が含まれています。通常、.deployファイル名拡張は、配布サーバのMIME型の、 これらのファイルのマッピングを容易にするために、ファイル名に添付されます。 ClickOnceは、ファイルがダウンロードされたあと、自動的に、クライアント側で、.deployファイル名拡張をはぎ取ります。
ClickOnce配置と更新工程
ClickOnce Deployment and Update Process
ClickOnceを経由した、ユーザーへのアプリケーションの実際の配布は、配布サーバで、 あなたの公開されたアプリケーションの配布マニフェストに、URLやハイパーリンクを提供することで、たいてい開始されます。 ユーザーは、ハイパーリンクをクリックしたり、あるいは、ブラウザでアドレスを入力することができます。そして、ClickOnce配布工程は呼び出されます。 マニフェストとアプリケーションファイルが、クライアント・コンピュータにダウンロードされたあと、アプリケーションは、起動します。 あなたが、オフラインで使用するために、最初の配布の間に、アプリケーションをインストールできるClickOnceオプションが、あります。 あるいは、あなたは、ユーザーに、毎回、リンク、あるいは、URLを使用して、アプリケーションを立ち上げることを、要求することができます。 あなたが、配布サーバへ、アプリケーションの新しいバージョンを発行するとき、ClickOnceは、更新を、自動的に、あるいは、手動で確認することができます。 そして、ダウンロードするでしょう。そして、アプリケーションが、次回、起動する時、updateを適用します。