2009-12-10 19 views
5

を実行する前に、私は、次の問題の解決策を見つけようとしている:ブートストラップ:MSIのバージョンがインストールされているか確認してください

私は多数のプログラム(奴隷それらを呼び出すことができます)を持っているすべてを単一のプログラム(マスター)に依存していること。各スレーブのインストーラを配布する必要があります。このインストーラはマスターをインストールする必要があります。

両方のバージョンをバージョンできるようにしたいので、複数のmsiが適切な解決策であり、ブートストラップでチェーンされているようです。

私の問題は、スレーブインストーラがすでにインストールされているマスタの同じバージョンをインストールすると、.msiが修復モードで実行されるということです。

これはユーザーの立場からは受け入れられず、混乱の原因になります。

msiを実行する前に、現在インストールされているファイルのバージョンを確認する方法はありますか?

私は現在、ブートストラップとしてWIXのsetupbld.exeを使用しています。私は、任意のドキュメントを見つけることができないとして、私は本当に知らない代わりにsetupbld.exeを使用しての

大歓迎任意の他のソリューションは、(私もバージョン管理が無用であることから、成功しませんマージモジュールを試してみました)

答えて

1

( )あなたはmsbuildのgeneratebootstrapper taskを使うことができます。 wixのドキュメントでは、このタスクを使用して.NET Frameworkをインストールするブートストラップを生成する方法についてもすでに説明しています。 How To: Install the .NET Framework Using a Bootstrapperを参照してください。これにより、あらかじめ定義されたブートストラップパッケージが使用されます。

しかし、この場合も、独自のブートストラップパッケージを作成する必要があります。これを行う1つの方法は、既存のブートストラップパッケージをC:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\(またはWindows SDKにあるパッケージ)で調べ、documentation of the Bootstrapper Manifest XML formatを読んでください。 bootstrapper generatorツールも役立ちます。

パッケージをインストールする必要があるかどうかを判断するには、InstallChecksのいずれかを使用してプロパティを設定し、のプロパティ値をCommands要素でチェックします。

これがすべて難しいと思っているのであれば、それは—であるはずですが、これまで私が使ってきたことです。私はまだ試していないいくつかの選択肢があります:

  • 悪いという名前の実際の汎用 ブートストラップ・ジェネレータであるdotNetInstaller
  • wix 3.5 burnまだリリースされていないブートストラップ。それがまだ使用可能な状態にあるかどうかはわかりません。
+1

私はdotNetInstallerを使用してしまい、完璧ではないが、Microsoftのブーストラッパーを使用するよりも優れていることが分かった。 これまでのところ、私がdotNetInstallerを使用しようとしたことはすべて機能しています。時にはそれは少しガイダンスが必要ですが。 – gollumullog

関連する問題