我尝试使用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错误。
答案 0 :(得分:-1)
Heat正在告诉你,它看到了暴露了DllRegisterServer()函数的Dll,并且它无法获取任何COM信息。这通常意味着DLL缺少依赖项,并且DllRegisterServer()在收获期间无法正确运行。
我将使用Depends查看DLL并查找缺少的依赖项。将这些DLL放入目录并尝试再次收割。