1

現在のモノリシック インストーラーを WiX 3.7 バンドル/チェーンを使用するように変換しています。現在、個別に保守可能な独自の MSI インストーラーに組み込まれているいくつかのコンポーネントがあります。私の次のタスクは、これらすべてをブートローダー/ブートチェーンに追加することですが、問題が発生しました。

個々のインストーラーの要件は、ファイル名にバージョンが含まれていることです (つまり、MyApplication-5.4.22.msi)。MSI パッケージをまとめて収集するための Heat のようなツールは見当たりません。また、さまざまなパッケージ名を考慮して、ワイルドカードを使用して MsiPackage 要素を追加する方法も見当たりません。

最後の手段として、バンドラーを別の MSBuild スクリプト内にラップして、ファイル名を「オートコンプリート」し、パスを変数としてバンドラーに渡すことができます。誰かが wxs または wixproj 設定で直接機能するソリューションを推奨できることを願っています。

4

1 に答える 1

1

msi ファイルが WiX Setup プロジェクトでビルドされている場合、WiX Bootstrapper プロジェクトはそれらを参照できるため、msi ファイルへのパスとして定義される便利な WiX 変数が作成されます。

ここでの私の回答と、ここでの変数のリストを参照してください

そうでない場合は、Build ターゲットのに実行される MSBuild ターゲットをいくつか記述して、実際のファイル パスを把握できます。利用可能な標準およびコミュニティの MSBuild タスクが十分でない場合は、アセンブリを作成するか、インライン コードを使用して、独自のタスクを作成できます。(そしてもちろん、 cmd.exe などのコマンドライン プログラムにシェル アウトするExecタスクが常にあります。その後、その出力を解析して msi パスを抽出できます。)

于 2013-09-08T00:02:16.613 に答える