Heat.exe: 64-bit .dll fails to be converted to a 64-bit .msi

拟墨画扇 提交于 2019-12-12 04:50:57

问题


I tried to generate a 64-bit FireBreath MSI installer using heat.exe but got the following output:

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

In order to generate the 64-bit .msi I copied the MyPlugin_auto.wxs that was generated from the 32-bit .dll, and build again using the 64-bit .dll and the MyPlugin_auto.wxs that was copied previously. 64-bit msi was generated without errors, I installed it, test it and it works, but I would like to ask if it is a better way to get over the heat.exe bug.


回答1:


Heat is telling you that it saw a Dll with the DllRegisterServer() function exposed and that it failed to harvest any COM information. This typically means that the DLL is missing dependencies and that DllRegisterServer() failed to run correctly during the harvesting.

I'd take a look at the DLL using Depends and look for missing dependencies. Put those DLL's into the directory and try harvesting again.



来源:https://stackoverflow.com/questions/27506770/heat-exe-64-bit-dll-fails-to-be-converted-to-a-64-bit-msi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!