ブートストラップ パッケージの作成
セットアップ プログラムは、Windows インストーラー (.msi) ファイルや実行可能プログラムなどの再頒布可能コンポーネントを検出およびインストールするように構成できる汎用的なインストーラーです。インストーラーはブートストラップとも呼ばれます。ブートストラップは、コンポーネントのインストールを管理するためのメタデータを指定する、一連の XML マニフェストによってプログラミングされます。
ブートストラップでは、まず、既にインストールされている必須コンポーネントがあるかどうかが検出されます。必須コンポーネントがインストールされていない場合、ライセンス条項が表示されます。次に、エンド ユーザーがライセンス条項に同意すると、必須コンポーネントのインストールが開始されます。すべての必須コンポーネントが検出された場合は、そのままアプリケーション インストーラーが開始されます。
カスタム パッケージの作成
ブートストラップ パッケージを記述するマニフェストを作成するには、Bootstrapper Manifest Generator を使用できます。または、Visual Studio の XML エディターを使用してマニフェストを生成することもできます。詳細については、「方法: パッケージ マニフェストを作成する」および「方法: 製品マニフェストを作成する」を参照してください。ブートストラップ パッケージを作成する例については、「チュートリアル: プライバシー プロンプトを表示するためのカスタム ブートストラップの作成」を参照してください。
ブートストラップ パッケージを作成するには、Bootstrapper Manifest Generator に EXE 形式または MSI 形式の再頒布可能ファイルを指定する必要があります。Bootstrapper Manifest Generator によって次のファイルが作成されます。
パッケージの言語的に中立なメタデータをすべて含む製品マニフェスト (product.xml)。再頒布可能コンポーネントのすべてのローカライズ バージョンに共通するメタデータが含まれます。
言語固有のメタデータを含むパッケージ マニフェスト (package.xml)。通常、ローカライズされたエラー メッセージが含まれます。コンポーネントの各ローカライズ バージョンに対して、少なくとも 1 つのパッケージ マニフェストが必要です。
これらのファイルが作成されたら、製品マニフェスト ファイルをカスタム ブートストラップ名のフォルダーに格納します。パッケージ マニフェスト ファイルは、ロケール名のフォルダーに格納します。たとえば、英語の再頒布用のパッケージ マニフェスト ファイルは、en というフォルダーに格納します。日本語用は ja、ドイツ語用は de など、ロケールごとにこの手順を繰り返します。最終的に、カスタム ブートストラップ パッケージは次のようなフォルダー構造になります。
CustomBootstrapperPackage
product.xml
CustomBootstrapper.msi
de
eula.rtf
package.xml
en
eula.rtf
package.xml
ja
eula.rtf
package.xml
最後に、再頒布可能ファイルをブートストラップ フォルダーにコピーします。詳細については、「方法: ローカライズされたブートストラップ パッケージを作成する」を参照してください。
\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages
ブートストラップ フォルダーの場所は、次のレジストリ キーの Path 値からも特定できます。
HKLM\Software\Microsoft\GenericBootstrapper\4.0
64 ビット システムで次のレジストリ キーの使用 :
HKLM\Software\Wow6432Node\Microsoft\GenericBootstrapper\4.0
再頒布可能コンポーネントは、パッケージのディレクトリの下の専用のサブフォルダーにそれぞれ表示されます。製品マニフェスト ファイルと再頒布可能ファイルは、このサブフォルダーに格納されます。コンポーネントのローカライズ バージョンとパッケージ マニフェストは、カルチャ名に従って名前が付けられたサブフォルダーに格納されます。カルチャ名の詳細については、「Localization プロパティ」の表を参照してください。
これらのファイルをブートストラップ フォルダーにコピーすると、Visual Studio の [必須コンポーネント] ダイアログ ボックスにブートストラップ パッケージが自動的に表示されます。カスタム ブートストラップ パッケージが表示されない場合は、[必須コンポーネント] ダイアログ ボックスを閉じてから開き直してください。詳細については、「[必須コンポーネント] ダイアログ ボックス」を参照してください。
ブートストラップによって自動的に設定されるプロパティを次の表に示します。
プロパティ |
Description |
---|---|
ApplicationName |
アプリケーションの名前。 |
ProcessorArchitecture |
実行可能ファイルが対象とするプラットフォームのプロセッサと、ワードあたりのビット数。次の値があります。
|
Microsoft Windows 95、Windows 98、または Windows ME の各オペレーティング システムのバージョン番号。バージョンの構文は、Major.Minor.ServicePack です。 |
|
Windows NT、Windows 2000、Windows XP、Windows Vista、Windows Server 2008、または Windows 7 の各オペレーティング システムのバージョン番号。バージョンの構文は、Major.Minor.ServicePack です。 |
|
インストール中に実行される Windows インストーラーのアセンブリ (msi.dll) のバージョン。 |
|
このプロパティは、ユーザーに管理者特権がある場合に設定されます。値は true または false です。 |
|
InstallMode |
インストール モードは、コンポーネントのインストール元の場所を示します。次の値があります。
|
再配布可能コンポーネントとアプリケーションのインストールの分離
再配布可能ファイルは、セットアップ プロジェクトで配置されないようにすることができます。そのためには、.NET Framework ディレクトリの RedistList フォルダーに再頒布可能リストを作成します。
%ProgramFiles%\Microsoft.NET\RedistList
再頒布可能リストは XML ファイルです。このファイルには、<会社名>.<コンポーネント名>.RedistList.xml という形式の名前を付けます。たとえば、Acme 社製の Datawidgets というコンポーネントの場合は、Acme.DataWidgets.RedistList.xml にします。再頒布可能リストの内容は、たとえば次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<FileList Redist="Acme.DataWidgets" >
<File AssemblyName="Acme.DataGrid" Version="1.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" Culture="neutral" ProcessorArchitecture="MSIL" InGAC="true" />
</FileList>
参照
処理手順
方法 : ClickOnce アプリケーションと共に必須コンポーネントをインストールする