3

バックグラウンド:

私は常に、自分のプロジェクトで次の原則を確実にしようとしています。

新たにチェックアウトした後、開発者は、結合されたフォルダーの内容のみを使用して、プロジェクトに関連するすべてのタスクを実行できるはずです。

明らかに、これは常に可能であるとは限りません (例: Visual Studio for Windows 開発)。ただし、log4net、NHibernate、NUnit などのプロジェクトに固有のサードパーティのライブラリやツールをインストールする必要はありません。これには、次のような理由があります。

  • 特定の開発マシンで、同じサードパーティ ライブラリまたはツールの異なるバージョンを利用するいくつかの異なるプロジェクトに取り組むことができます。
  • 環境のセットアップ要件を最小限に抑えることで、新しい開発者やマシンのセットアップがはるかに簡単になります
  • 自動ビルドのメンテナンスを容易にします

仮定/制約

  • 現在 WiX 3 ベータ版を使用していますが、2.0 か 3.0 のいずれかの方法があれば回答してください。
  • Visual Studio 2005 を使用しています
  • IDE 構文の強調表示は必須ではありません。

質問:

WiX ツールセットのローカル インストールを回避し、代わりにフラット ファイルを使用することは可能ですか? もしそうなら、その方法を説明してください。

関連項目:

4

2 に答える 2

6

まず、WiX インストーラーをビルドします。

  • Visual Studio 2005 で新しい WiX インストーラー プロジェクトを作成します。
  • それに応じて WiX XML を構築します。

次に、WiX ツールキットをソース ツリーに統合します。

  • c:\Program Files\Windows Installer XML v3\binソース ツリーのサブディレクトリにコピーします。WiX\bin.wixproj ファイルに対して相対的に使用しました。
  • c:\Program Files\MSBuild\WiX\v3.0\ソース ツリーのサブディレクトリにコピーします。WiX\v3.0.wixproj ファイルに対して相対的に使用しました。
  • 次のコードを追加するか、次の行を置き換えます。

<WixTargetsPath Condition=" '$(WixTargetsPath)' == ''>$(MSBuildExtensionsPath)\Microsoft\WiX\v3.0\Wix.targets</WixTargetsPath>

次の行を使用します。

<WixToolPath>$(MSBuildProjectDirectory)\WiX\bin\</WixToolPath> <WixTasksPath>$(MSBuildProjectDirectory)\WiX\v3.0\WixTasks.dll</WixTasksPath> <WixTargetsPath>$(MSBuildProjectDirectory)\WiX\v3.0\Wix.targets</WixTargetsPath>

ご覧のとおりWixToolPath、、WixTasksPathおよびWixTargetsPathディレクティブは、コピーするように指示したフォルダーの場所を反映しています。

  • .wixproj の名前を .csproj に変更します。これにより、Visual Studio が .wixproj ファイルによって混乱することがなくなりますが、.wixproj は有効な MSBuild プロジェクトであるため、Visual Studio はそれを操作できます。

この方法を使用すると、前述の WiX ディレクトリは約 9MB の大きさになります。

于 2009-02-03T21:54:08.133 に答える
2

WiX 2 では、実行可能ファイルと dll をプロジェクトのディレクトリにダウンロードするだけでよいことを知っています。次に、.bat ファイルを作成して、インストーラーのビルドに必要なパラメーターを指定して、candle.exe と light.exe を実行します。

そうすれば、すべてのプロジェクトは、それぞれ約 4 MB のディスク ドライブ ヒットで、独自のバージョンの WiX を持つことができます。

私は肯定的ではありませんが、WiX 3 でも同じことができると思います。

于 2009-02-03T19:44:18.893 に答える