.NET Framework を使って書かれたアプリケーションは たいてい、インストール プロセスの一部 として Framework をインストールする必要があります。.NET Framework インストーラーでの 依存状態のせいで、( Visual C++ と DirectX ランタイムでできる様に ) パッケージ内に直接 Framework を包含する 手段がありません。代わりに、ブートストラップ プログラムを当てに しなければなりません: つまり、まず .NET Framework をインストールして、そして アプリケーションのインストーラーを実行する ラッパー アプリケーションです。
WiX は今のところ ブートストラップ プログラムを提供していませんが、Visual Studio で ClickOnce 配置によって提供されている物を 使う事ができます。このドキュメントは、 .NET Framework 3.5 用 ClickOnce ブートストラップ プログラムを生み出すのに どのように WiX プロジェクトを変更するかを ざっと見ます。SQL Server Compact Edition と Visual Studio Tools for Office といった 他のテクノロジーについてのブートストラップ プログラムを生み出すのにも 同様のステップを用いる事ができます。
( 訳注: MSDN
.NET Framework アプリケーションと Dotnetfx.exe をインストールするための単一のセットアップ プロジェクトの作成、
.NET Framework 1.1 の再配布の中ほど
「.NET Framework アプリケーションと Dotnetfx.exe をインストールするための単一のセットアップ プロジェクトの作成」、
にあるように MSDNにも ツールがあるようです。
1.1 、
1.00 。
しかし、最近のバージョンでは前提ファイルが多く、Framework 2.0 でも MDAC 2.8、Windows
Installer 3.0、Internet Explorer 5.01 以降の新しいバージョンが必要である為、ClickOnce の方
が良いようです。
Microsoft Component Installer SDK for Windows も お調べ下さい(これは古いですね)。
現在 Microsoft が出している最新のものは
MSBuild か
Visual Studio が出力する物のようですね。
CodePlex はサイトだけ MS のようです。)
Visual Studio で 編集する .wixproj ファイルを開く:
プロジェクト ファイルで <Project> エレメント内のどこででも、以下を追加する:
<ItemGroup> <BootstrapperFile Include="Microsoft.Net.Framework.3.5"> <ProductName>.NET Framework 3.5</ProductName> </BootstrapperFile> <BootstrapperFile Include="Microsoft.Windows.Installer.3.1"> <ProductName>Windows Installer 3.1</ProductName> </BootstrapperFile> </ItemGroup>
これらのアイテムは、ステップ3で ブートストラップ生成タスクに インクルードするパッケージの リストを知らせるのに 使われます。このケースでは、パッケージは .NET Framework 3.5 と ( .NET Framework インストールの為に要求されるコンポーネントである ) Windows Installer 3.1 です。
プロジェクト ファイルで、ファイルの終わりで <Target Name="AfterBuild"></Target> エレメントのコメントを外して、それを 以下で置き換えてください:
<Target Name="AfterBuild"> <GenerateBootstrapper ApplicationFile="$(TargetPath)" ApplicationName="My Application Name" BootstrapperItems="@(BootstrapperFile)" ComponentsLocation="Relative" CopyComponents="True" OutputPath="$(OutputPath)" Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\"/> </Target>
これは MSBuild に インストーラーのビルドが完了した後に ブートストラップ プログラムを 生成する事を 指示します。ApplicationFile アトリビュートは、ビルドが完了した後に アプリケーション インストーラーの場所になります。ApplicationName アトリビュートは、 ブートストラップ プログラムが動いている間 ユーザーに表示される アプリケーション名です。 BootstrapperItems アトリビュートは、( ステップ2から ) インクルードする 必要条件のリストを 提供します。ComponentsLocation アトリビュートは、必要条件が アプリケーション インストーラー と同じ場所からインストールされる事を示す Relative にセットされています。CopyComponents アトリビュートは、必要条件ファイルを出力ディレクトリーにコピーする True にセットされて います。OutputPath アトリビュートは、ディスク上の インストーラーの出力場所になります。
Path アトリビュートは、必要条件パッケージの マシン上の位置を 指し示しています。 上で示されている場所は、Visual Studio 2008 がインストールされているマシンで デフォルト位置に 妥当なものです。Visual Studio 2005 がインストールされているマシンでは、 デフォルト位置は C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages です。
プロジェクトをビルドする為に 再び開くのに 以下を行って下さい:
では プロジェクトをビルドして下さい。インストーラーがビルドされた後、ブートストラップ プログラムがビルドされて 出力ディレクトリーに置かれます。
他のパッケージが、上で述べられたのと同じメカニズムを使って インストールされ得ます。 唯一の追加ステップは、ステップ2でのブートストラップ プログラム ファイルのリストを 変更する事です。必要なエントリーを手に入れるのにもっとも容易な手段は、選択された 要求パッケージを持つ 新しい MSBuild ファイルを作成するのに Bootstrapper Manifest Generator ツールを使う事です。それで 生成されたファイルを保存し、テキストエディタで それを開き、適切なエントリーを コピーします。Bootstrap Manifest Generator ツールは、 ClickOnce ブートストラップ プログラム経由でインストールされる カスタムパッケージを作成する のにも 使う事ができます。