チュートリアル : ClickOnce アプリケーションを手動で配置する
更新 : 2007 年 11 月
このチュートリアルでは、マニフェストの生成および編集ツール (Mage: Manifest Generation and Editing tool) のコマンド ライン バージョンまたは GUI バージョンを使用して、完全な ClickOnce 配置を作成するために必要な手順について説明します。
Visual Studio をいつも使用しているわけではない場合、配置プロセスを自動化する必要がある場合、または信頼されたアプリケーションの配置のような高度な配置機能を使用する必要がある場合は、コマンド ライン ツール Mage.exe を使用して ClickOnce マニフェストを作成します。以下のチュートリアルでは、マニフェストの生成および編集ツールのコマンド ライン バージョン (Mage.exe) または Windows フォーム バージョン (MageUI.exe) を使用して、完全な ClickOnce 配置を作成するために必要なすべての手順について説明します。
前提条件
このチュートリアルでは、配置する準備が整った状態の Windows フォーム アプリケーションが作成してあると仮定しています。また、このアプリケーションの名前は WindowsFormsApp1 としています。また、Windows Software Development Kit (SDK) をインストールする必要があります。
配置をビルドする前に、いくつかの事項を決めておく必要があります。最初に、最も重要な事項である配置の配布方法を決定します。Web 経由、ファイル共有からの配布、または CD からインストールする方法があります。詳細については、「ClickOnce の配置の概要」を参照してください。
次に、信頼のレベルを昇格した上でアプリケーションを実行するのかどうかを決定する必要があります。「信頼されたアプリケーションの配置の概要」で説明したように、ClickOnce アプリケーションは、既定では部分信頼ゾーンで実行されます。実際のアクセス許可は、そのアプリケーションがイントラネット上でホストされるか、またはインターネットでホストされるかで決まります。アプリケーションからクライアント コンピュータ上のデータへのアクセス、ローカル デバイスとの通信、Windows API 関数の呼び出し、または、その他の危険となりうる操作を行う場合には、アプリケーションには高いレベルの信頼を与える必要があります。アプリケーションで、ユーザーのシステムへの完全なアクセスなど、完全な信頼が必要な場合には、Mage.exe を使用すると、完全信頼を簡単に設定できます。アプリケーションにカスタム化したアクセス許可セットを定義する場合には、他のマニフェストからインターネット セクションまたはイントラネット セクションをコピーし、必要に合わせて変更し、テキスト エディタまたは MageUI.exe を使用してアプリケーション マニフェストに追加します。
ClickOnce マニフェストに高い信頼を与える方法には、"アクセス許可の昇格" を行う方法と "信頼されたアプリケーションの配置" で行う方法とがあります。いずれの方法でも、配置には、MakeCert.exe ツールを使用して作成した Authenticode 証明書か、証明機関 (CA: Certificate Authority) から取得した Authenticode 証明書を使って署名する必要があります。信頼されたアプリケーションの配置を使用する場合には、すべてのクライアント コンピュータに証明書を 1 回だけインストールする必要もあります。詳細については、「信頼されたアプリケーションの配置の概要」を参照してください。
コマンド ライン ツール Mage.exe でアプリケーションを配置するには
Windows SDK のコマンド プロンプトを開き、ClickOnce のファイルを格納するディレクトリに移動します。
ディレクトリを作成し、配置の現在のバージョンに対応させて名前を付けます。初めてアプリケーションを配置する場合であれば、1.0.0.0 などの名前を付けます。
メモ : 配置のバージョンは、アプリケーション ファイルのバージョンとは異なる場合もあります。
そのフォルダのサブディレクトリ bin を作成し、実行可能ファイル、アセンブリ、リソース ファイル、データ ファイルなど、すべてのアプリケーション ファイルをこのサブディレクトリに格納します。
Mage.exe を呼び出して、アプリケーション マニフェストを作成します。
mage -New Application -ToFile 1.0.0.0\WindowsFormsApp1.exe.manifest -Name "Windows Forms App 1" -Version 1.0.0.0 -FromDirectory 1.0.0.0\bin
自分のデジタル証明書を使用してアプリケーション マニフェストに署名します。
mage -Sign WindowsFormsApp1.exe.manifest -CertFile mycert.pfx
Mage.exe を呼び出して、配置マニフェストを作成します。この場合 ClickOnce 配置は、既定で、オンラインでもオフラインでも実行できるインストール アプリケーションとして解釈されます。ユーザーがオンラインの場合にだけアプリケーションを使用できるようにする場合は、-i フラグの値に f を指定して使用します。既定値を使用し、Web サイトまたはファイル共有からユーザーがアプリケーションをインストールするようにする場合は、Web サーバーまたは共有サイトにあるアプリケーション マニフェストを -providerUrl フラグの値で指すようにしてください。
mage -New Deployment -ToFile WindowsFormsApp1.application -Name "Windows Forms App 1" -Version 1.0.0.0 -AppManifest 1.0.0.0\WindowsFormsApp1.manifest -providerUrl http://www.adatum.com/WindowsFormsApp1/WindowsFormsApp1.application
自分のデジタル証明書を使用して配置マニフェストに署名します。
mage -Sign WindowsFormsApp1.application -CertFile mycert.pfx
バージョン フォルダおよび \bin フォルダも含め、現在のディレクトリにあるすべてのファイルを配置先にコピーします。配置先は、Web サイトか FTP サイト、ファイル共有、または CD のいずれかです。
ユーザーがアプリケーションをインストールするために必要な、URL、UNC、または物理メディアを指定します。URL または UNC を指定する場合は、配置マニフェストの完全パスをユーザーに伝える必要があります。たとえば、WindowsFormsApp1 を http://webserver01/ の WindowsFormsApp1 ディレクトリに配置する場合、URL の完全パスは http://webserver01/WindowsFormsApp1/WindowsFormsApp1.deploy です。
グラフィカル ツール MageUI.exe でアプリケーションを配置するには
Windows SDK のコマンド プロンプトを開き、ClickOnce のファイルを格納するディレクトリに移動します。
bin サブディレクトリを作成し、実行可能ファイル、アセンブリ、リソース ファイル、データ ファイルなど、すべてのアプリケーション ファイルをこのサブディレクトリに格納します。
サブディレクトリを作成し、配置の現在のバージョンに対応させて名前を付けます。初めてアプリケーションを配置する場合であれば、1.0.0.0 などの名前を付けます。
メモ : 配置のバージョンは、アプリケーション ファイルのバージョンとは異なる場合もあります。
\bin ディレクトリを手順 2 で作成したディレクトリに移動し、MageUI.exe を起動します。
MageUI.exe
[File] メニューの [New] をポイントし、[Application Manifest] をクリックして、アプリケーション マニフェストを新規作成します。
既定で表示される [Name] ページで、この配置の名前およびバージョン番号を入力します。
[Files] タブをクリックし、[Application Directory] ボックスの横の [Browse...] をクリックします。
フォルダ選択ダイアログ ボックスで、アプリケーション ファイルが格納されている、手順 2 で作成したディレクトリを選択し、[OK] をクリックします。
[Populate] をクリックし、アプリケーション ファイルすべてをファイル リストに追加します。アプリケーションに実行可能ファイルが複数含まれている場合は、[File Type] ボックスの [Entry Point] をオンにして、この配置のメイン実行可能ファイルをスタートアップ アプリケーションとして指定します。アプリケーションの実行可能ファイルが 1 つだけの場合には、そのファイルが MageUI.exe によってメイン実行可能ファイルとしてマークされます。
[Permissions Required] タブをクリックし、アプリケーションが要求する信頼のレベルを選択します。既定値は [Full Trust] です。この設定は、ほとんどのアプリケーションに適しています。
[File] メニューの [Save] をクリックし、アプリケーション マニフェストを保存します。保存すると、アプリケーション マニフェストへの署名を求めるメッセージが表示されます。
証明書をファイルとしてファイル システムに保存してある場合には、[Sign as certificate file] オプションの [...] ボタンをクリックして、ファイル システム上の証明書を選択します。
または
使用しているコンピュータからアクセスできる証明書ストアに証明書が保存されている場合には、[Sign with stored certificate option] をクリックし、表示された一覧から証明書を選択します。
[File] メニューの [New] をポイントし、[Deployment Manifest] をクリックして、配置マニフェストを作成します。次に、[Name] ページで名前とバージョン番号 (この例の場合は、1.0.0.0) を入力します。
[Publisher] タブをクリックし、[Publisher] ボックスおよび [Product] ボックスに値を入力します。([Product] には、アプリケーションをローカル コンピュータにインストールしたときに Windows の [スタート] メニューに表示される名前を入力します。)
[Update] タブをクリックし、このアプリケーションを更新する頻度を指定します。アプリケーションで ClickOnce 配置 API を使用して自動的に更新をチェックする場合には、[This application should check for updates] チェック ボックスをオフにします。
[Application Reference] タブに移動します。[Select Manifest] をクリックし、前の手順で作成したアプリケーション マニフェストを選択すると、このページに表示されるすべての値に初期値を入力できます。
[Save] をクリックし、配置マニフェストをディスクに保存します。保存すると、アプリケーション マニフェストへの署名を求めるメッセージが表示されます。
証明書をファイルとしてファイル システムに保存してある場合には、[Sign as certificate file] オプションの [...] ボタンをクリックして、ファイル システム上の証明書を選択します。
または
使用しているコンピュータからアクセスできる証明書ストアに証明書が保存されている場合には、[Sign with stored certificate option] をクリックし、表示された一覧から証明書を選択します。
バージョン フォルダおよび \bin フォルダも含む、現在のディレクトリにあるすべてのファイルを、配置先にコピーします。配置先は、Web サイトか FTP サイト、ファイル共有、または CD のいずれかです。
ユーザーがアプリケーションをインストールするために必要な、URL、UNC、または物理メディアを指定します。URL または UNC を指定する場合は、配置マニフェストの完全パスをユーザーに伝える必要があります。たとえば、WindowsFormsApp1 を http://webserver01/ の WindowsFormsApp1 ディレクトリに配置する場合、URL の完全パスは http://webserver01/WindowsFormsApp1/WindowsFormsApp1.deploy です。
次の手順
アプリケーションの新しいバージョンを配置する場合には、その新しいバージョン番号、たとえば 1.1.0.0 を使った名前を付けた新しいディレクトリを作成し、この新しいディレクトリの \bin フォルダに新しいアプリケーション ファイルを移動します。その後、新しいアプリケーション マニフェストを作成して、新しいディレクトリに格納したら、発行者に依頼して新しいマニフェストに署名してもらいます。発行者によるマニフェストへの署名が終わると、Mage.exe を使用して新しいアプリケーション マニフェストを指すように配置マニフェストを更新できるようになります。
mage -Update WindowsFormsApp1.application -Version 1.1.0.0 -AppManifest 1.1.0.0\WindowsFormsApp1.exe.manifest
MageUI.exe を使用する場合には、配置マニフェストを開いて [Application Reference] タブをクリックし、[Select Manifest] ボタンをもう一度クリックすれば、上記と同じ処理を実行できます。
アプリケーション マニフェスト参照を更新した場合には、配置マニフェストに署名をし直す必要があります。これは、マニフェストを変更すると、変更内容にかかわらず、マニフェストのデジタル署名が無効になるためです。