このような出力全体のフラグメントを作成しました
"%WIX%\bin\heat" dir ..\Output -nologo -suid -srd -sfrag -ag -wx -dr "INSTALLFOLDER" -var var.OutputDir -out ..\FreePIE.Setup\main.wxs
Product.wxs からこれを使用するにはどうすればよいですか?
ドキュメントは、Heatの使用方法について非常に曖昧です
編集: ビルドすると、もう少し進んだ(msbuildを使用)
msbuild ..\FreePIE.Setup\FreePIE.Setup.wixproj
私は得る
未定義のプリプロセッサ変数 '$(var.OutputDir)'。
編集:Candleとlight exeを使用した最終的な解決策
<Target Name="Candle">
<Exec WorkingDirectory="$(InstallerTemp)" Command=""$(WIX)\candle.exe" -dOutputDir="..\Output" -dVersion="$(Version)" -dProductName="FreePIE" $(InstallerTemp)\Main.wxs $(InstallerTemp)\Output.wxs"/>
</Target>
<Target Name="Light">
<Exec WorkingDirectory="$(InstallerTemp)" Command=""$(WIX)\light.exe" -ext WixUIExtension -ext WiXNetFxExtension -out FreePIE.$(Version).msi $(InstallerTemp)\Main.wixobj $(InstallerTemp)\Output.wixobj"/>
</Target>
Main.wsx は主な定義を保持し、Output.wxs は熱によって生成された wsx を保持します。-dOutputDir= フラグを設定する
完全なソリューションについては、 https://github.com/AndersMalmgren/FreePIE/tree/master/BuildToolsを参照してください。
すべてのロジックを呼び出すバッチは https://github.com/AndersMalmgren/FreePIE/blob/master/BuildTools/build_installer.batです