其他帖子指向答案,但没有一个答案在 Visual Studio 2010 中有效。
最新版本的 WIX 不能像连接到项目(特别是 Web 项目)时那样开箱即用。因此,我想像这样链接到 $(SolutionDir) 宏:
-b $(SolutionDir)\ChildPath\
但是,解决方案目录中有一个空间。例如:
C:\Some Path\ChildPath\
这会引发错误:
The system cannot find the file 'Path\ChildPath\' with type 'Source'.
请注意空格之后的所有内容都是错误中出现的内容。显然是在命令行命令中使用路径而不用引号引起来的特征。但是,如果您用引号括起来,链接器将无法解释第二个引号并给出另一个详细错误(它太蹩脚了,我不会发布)。你甚至不能这样做,否则 light.exe 会转储:
-b "C:\Some Path\ChildPath\"
基本上,如果路径中的任何地方都有空格,则没有直观的方法可以在链接器中连接 a -b 开关。light.exe 既不能从命令行也不能从其他任何地方处理它。还有一件事:它确实说你应该能够在空格后双击路径,但这也不起作用:
-b C:\Some Path\\ChildPath\
我错过了什么?