Heat.exe:64位的.dll无法被转换成一个64位的.msi(Heat.exe: 64-bit

2019-11-03 12:32发布

我试图生成一个64位FireBreath MSI安装程序使用heat.exe但得到了以下的输出:

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错误。

Answer 1:

热火在告诉你,它认为与暴露的DllRegisterServer()函数的DLL,它没有任何收获COM信息。 这通常意味着该DLL文件丢失依赖和的DllRegisterServer()失败的收获时才能正确运行。

我使用depends看看DLL和寻找失踪的依赖关系。 把那些DLL的进入目录,然后再次尝试收获。



文章来源: Heat.exe: 64-bit .dll fails to be converted to a 64-bit .msi