Heat.exe:64位.dll无法转换为64位.msi

时间:2014-12-16 14:20:42

标签: windows wix windows-installer firebreath wix3.6

我尝试使用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错误。

1 个答案:

答案 0 :(得分:-1)

Heat正在告诉你,它看到了暴露了DllRegisterServer()函数的Dll,并且它无法获取任何COM信息。这通常意味着DLL缺少依赖项,并且DllRegisterServer()在收获期间无法正确运行。

我将使用Depends查看DLL并查找缺少的依赖项。将这些DLL放入目录并尝试再次收割。