WiX:加热如何在命令行中使用自定义变量

时间:2016-08-24 15:34:27

标签: wix windows-installer heat

我正在使用此加热命令

first

但似乎热量忽视了“路径”的声明。变量和-var参数。所以它会生成一个像这样的文件

heat dir "$(SolutionDir)scr\A\A.WindowsService\bin\$(Configuration)" -dr ConfigurationUtilityDir -gg -g1 -cg ConfigurationUtilityComponents -sf -spdb -xo -srd  -out "$(SolutionDir)scr\Installers\A\AInstallerHeat\ConfigurationUtilityHeat.wxs" -dPath="C:\..\A\A.WindowsService\bin\Release -var var.Path

显然,它无法创建最终的.msi包,因为它没有在' Source'中声明的路径中找到任何文件。属性。

我如何使用'路径'变量值为'来源'属性?

由于

编辑:我还尝试使用<Component Id="cmpBBD96B447087B68960C29FA13E08DCA2" Directory="dir5624AEB1C4C7EFEEFB6B6016AAE1AD54" Guid="B71EF27A-2812-4698-BDA9-8ABC8C44C8F7"> <File Id="fil8D456C6334925F4FE3A7B8A8A5D76ABB" KeyPath="yes" Source="SourceDir\bin\A.dll" /> </Component> 而不是定义自定义变量,但它仍然会将文件查找到&#39; SourceDir ..&#34;目录

2 个答案:

答案 0 :(得分:1)

我将解释如何使用Visual Studio实现您的要求,这可能会帮助您找到解决方案。

  1. 在我的加热命令中,我指定-var var.Path而不是-var wix.Path
  2. 在我的Visual Studio项目属性的“工具设置”窗口中,我在链接器选项-dPath=..\someRelativePath
  3. 中指定

    当heat.exe生成源时,指定的路径现在采用Source="!(wix.HelpSource)\filename.dll"

    形式

    以下是“工具设置”窗口的截图: Frame.Navigate

    注意:如其他答案所述,运行heat.exe时,指定的最后一个参数是输出文件-out sourceFile.wxs

答案 1 :(得分:0)

来自热量使用:

usage:  heat.exe harvestType harvestSource <harvester arguments> -o[ut] sourceFile.wxs

在-o [ut]参数之后不再解析参数。在-out之后你有-dPath ...和-var。