【问题标题】:Wix Heat dir not accepting variableWix Heat 目录不接受变量
【发布时间】:2018-03-07 16:12:24
【问题描述】:

"$(WiX)\bin\heat.exe" 目录 $(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) 无法解析。 我应该如何使用它?

【问题讨论】:

    标签: wix heat


    【解决方案1】:

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

    如果您想在每次构建时都使用它,您可以使用HarvestDirectoryHarvestProject。如果您在 proj 文件中从 MSBuild 运行它,则不能使用 $(MyProject.Dir.TargetDir),因为这是自动生成的项目目录到 wix 变量的映射,以便在 wxs 源中使用。我查看了 wix 目标文件,看起来它使用 WixTasks.dll 中的 CreateProjectReferenceDefineConstants 生成了所有这些参考项目变量,因此您可以在那里查看它们是如何做到的。

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

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

    【讨论】:

    • HarvestProject 不会获取项目依赖文件。解决方案构建和 msbuild 中的相对路径不同,因此无济于事。
    【解决方案2】:

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

    【讨论】:

    • 请给我们一些代码
    【解决方案3】:

    定义环境系统变量
    我的项目=C:\CODE\TestProApp
    那么命令就像 "$(WiX)\bin\heat.exe" 目录 "$("$(env.MyProject)"

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多