Wix Heat dir不接受变量

时间:2018-03-07 16:12:24

标签: wix heat

“$(WiX)\ bin \ heat.exe”dir $(MyProject.Dir.TargetDir)-var var.MyProject.Dir.TargetDir -t“$(ProjectDir)Filter.xslt”-dr INSTALLFOLDER -cg DesktopClientOutputComponentGroup -suid -ag -scom -sreg -sfrag -srd -o“$(​​ProjectDir)MyProject.Dir.Output.wxs”

这里dir $(MyProject.Dir.TargetDir)无法解析。 我应该如何使用它?

3 个答案:

答案 0 :(得分:1)

您是如何使用此命令行的?它是在MSBuild目标中吗?它是BeforeBuild目标的一部分吗?

如果您希望每次构建时都将其用于构建,则可以使用HarvestDirectoryHarvestProject。如果你在proj文件中从MSBuild运行它,则不能使用$(MyProject.Dir.TargetDir),因为这是项目的dir自动生成的映射到wxs变量的wix变量。我查看了wix目标文件,看起来它使用WixTasks.dll中的CreateProjectReferenceDefineConstants生成所有这些Reference项目变量,因此您可以查看它们是如何进行的。

我可能只是使用HarvestProject目标或使用$(ProjectDir)的相对路径或类似的东西。

您可能还希望将路径用引号括起来,以防它们中有空格。

答案 1 :(得分:0)

我的最终解决方案是定义项目属性并在命令

中使用它

答案 2 :(得分:-1)

定义环境系统变量
MyProject = C:\ CODE \ TestProApp
然后命令将像 “ $(WiX)\ bin \ heat.exe”目录“ $(” $(env.MyProject)“

参考号: http://wixtoolset.org/documentation/manual/v3/votive/votive_project_references.html