1

WiX インストーラーの製品バージョン属性の設定に関する別の質問 ( WiX インストーラーのバージョンを現在のビルド バージョンに設定するにはどうすればよいですか? ) では、最も投票された回答 (私が試して動作する) が推奨しています。

「使用できますProduct/@Version="!(bind.FileVersion.<FileId>)"。light.exe は、FileId によって参照されるファイルのバージョンを値に入力します。」

...これは素晴らしいことですが、実行可能ファイルの FileIdが変更される可能性があるという点で、WiX VS プロジェクトの収集機能を使用する場合、Visual Studio WiX プロジェクトでは少し不安定に見えます。

FileVersion プリプロセッサ拡張機能 ( http://wixfileversionext.codeplex.com/ )を使用する以外に、Visual Studio で自動生成された .wxs ファイルから特定のファイルを参照するより安全な方法はありますか?

4

2 に答える 2

2

生成された.wxsファイルはXSL変換(の-tオプションheat.exe)を介して実行できます。これにより、自動生成されたファイルIDが選択したものに置き換えられます。その結果、他の場所から安全に参照できるようになります。

于 2012-05-03T10:36:41.073 に答える
1

ビルド システムを使用してすべてのバージョン管理を制御し、それを msbuild プロパティとして WiX プロジェクトに渡します。

<PropertyGroup>
    <version_major Condition=" '$(version_major)' == '' ">0</version_major>
    <version_minor Condition=" '$(version_minor)' == '' ">0</version_minor>
    <build_number Condition=" '$(build_number)' == '' ">0</build_number>
    <build_vcs_number Condition=" '$(build_vcs_number)' == '' ">0</build_vcs_number>
    <InstallerVersion>$(version_major).$(version_minor).$(build_number).0</InstallerVersion>
</PropertyGroup>

WiX ソースでそれを で参照しProduct/@Version="$(var.InstallerVersion)"ます。ビルド システムがバイナリのバージョン管理も管理している場合、これは機能します。

于 2012-05-08T16:11:49.673 に答える