【发布时间】:2014-12-16 14:20:41
【问题描述】:
我尝试使用 heat.exe 生成 64 位 FireBreath MSI 安装程序,但得到以下输出:
heat.exe : warning HEAT1108 : The command line switch 't:' is deprecated.
Please use 't' instead.
heat.exe : warning HEAT5150 : Could not harvest data from a file that was
expected to be a SelfReg DLL:
C:\Users\firebreath-master\buildPlugin\bin\Release\myPlugin64.dll.
If this file does not support SelfReg you can ignore this warning.
Otherwise, this error detail may be helpful to diagnose the failure:
Unable to load file:
C:\Users\firebreath- master\buildPlugin\bin\Release\myPlugin64.dll, error: 193
为了生成 64 位 .msi,我复制了从 32 位 .dll 生成的 MyPlugin_auto.wxs,并使用之前复制的 64 位 .dll 和 MyPlugin_auto.wxs 再次构建。 64 位 msi 生成时没有错误,我安装了它,对其进行了测试,它工作正常,但我想问一下它是否是克服 heat.exe 错误的更好方法。
【问题讨论】:
-
这不是错误。错误 193 是“错误的可执行文件格式”。鉴于这是一个 64 位 DLL,您需要使用 64 位版本的 Heat.exe。不这样做不可避免地会导致这个错误,混合位数是不可能的。
-
有没有可以下载 heat.exe 64 位的链接?
-
在网上搜索发现this
-
事实证明 heat.exe 仍然不能正确处理 64 位 COM 二进制文件(2017 年 12 月)。有关一些上下文、解释和一些建议的解决方案,请参阅此答案:stackoverflow.com/a/47755780/129130。
标签: windows wix windows-installer firebreath wix3.6