我已经为我的整个输出创建了一个片段,就像这样
"%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 exes 的最终解决方案
<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