WiX Heat Pre-build Error

时间:2016-07-14 19:19:53

标签: wix

我有一个WiX安装程序工作正常,但是我工作了几个月......所以,我没有尝试构建安装程序(在重新配置的机器上),现在它每次都无法建立。我试图简化一切以隔离它失败的地方,但我似乎无法弄清楚原因。从本质上讲,它似乎在预构建过程中失败了。我有一个很长的预构建事件命令,但我已将其简化为基本要素。这是我的命令:

call “$(WIX)bin\heat.exe” dir "$(SolutionDir)MyProj\bin\Release" -out “$(ProjectDir)MyFiles.wxs”

我得到的错误是:

call “C:\Program Files (x86)\WiX Toolset v3.10\bin\heat.exe” dir "C:\Users\MyName\Documents\GitHub\MyProj\bin\Release" -out “C:\Users\MyName\Documents\GitHub\MyProj\Installer\MyFiles.wxs”
The filename, directory name, or volume label syntax is incorrect.

代码似乎从代码1退出,这似乎表明它无法找到文件名或路径...但是,我已经检查了输出日志中打印的路径和heat.exe应用程序确实存在于C:\ Program Files(x86)目录下。它正在尝试收获的目录(dir)已正确定义,输出位置也是如此。那么,有谁知道为什么会失败?

更新

令人难以置信的奇怪的是,即使我简化命令以尝试简单地调用heat.exe应用程序(没有其他参数),预构建事件命令似乎也会失败。我尝试将我的预构建事件更改为以下内容:

call “C:\Program Files (x86)\WiX Toolset v3.10\bin\heat.exe”

从附图中可以看出,heat.exe应用程序确实位于build命令中指定的目录中。然而,我仍然得到一个错误,说MSBuild失败并退出代码1.如果我检查输出日志,它说,"文件名,目录名或卷标语法不正确"。但是,我可以说这个安装程序几个月前工作正常,没有更改构建事件......所以我真的不知道它为什么现在不能工作,除了我不得不重新配置我的机器并最近重新安装Windows 10。我下载并安装了最新的WiX工具集,并假设这将是所需的一切。但是,这个错误仍然存​​在。有什么想法吗?

enter image description here

2 个答案:

答案 0 :(得分:3)

这真的很愚蠢,但我相信你需要在你的目录IIRC结束时加\。我想我曾经遇到过同样的问题。该错误不是特别有用。

call “$(WIX)bin\heat.exe” dir "$(SolutionDir)MyProj\bin\Release\" -out “$(ProjectDir)MyFiles.wxs”

(我想我已经记得向后,你需要在目录中没有尾随\ ..对不起)

<小时/>

万一你无法让pre-build事件发挥作用,你也可以像这样调用热量(需要编辑wixproj文件)

<Target Name="BeforeBuild">
    <Exec Command="&quot;$(WIX)bin\heat.exe&quot; dir &quot;$(SolutionDir)MyProj\bin\Release&quot; -out &quot;$(ProjectDir)MyFiles.wxs&quot;"/>
</Target>

这就是我在我撰写的一些安装程序中调用热量的方法。如果这也行不通,那么我就没有为什么这对你不起作用的想法。

答案 1 :(得分:1)

我知道它有点老问题,但我已经面对这个问题,花了好几个小时来注意不同的问题:“$(WIX)bin\heat.exe”。替换为直的"$(WIX)bin\heat.exe"并享受。