我有一个64位的COM DLL,我想使用heat.exe从中获取typelib信息。但是当我尝试这样做时,我得到错误193(错误的可执行格式)。 heat.exe只有32位,并且不能与64位可执行文件一起使用吗?我在我的机器上发现只有一个版本的heat.exe。
感谢。
答案 0 :(得分:2)
不幸的是heat.exe
确实是32位,因此只能收集32位COM注册:http://wixtoolset.org/issues/1661/
此处讨论了64位heat.exe
扩展程序:http://sourceforge.net/p/wix/mailman/message/30541133/,代码可在此处找到:https://wix.codeplex.com/SourceControl/network/forks/roberthyang/NewHeatExtension/latest
答案 1 :(得分:1)
答案 2 :(得分:0)
我有类似的问题,在收集vb6和非.net库时。你可以尝试加热吗? -scom -o
如果没有解决问题,可以在此处粘贴加热命令。
答案 3 :(得分:0)
在我的情况下,我需要一个单独的包,用于32位和64位COM DLL。使用32位DLL的收获工作适用于64位版本。只需要确保构建配置是64位特定的。
答案 4 :(得分:0)
如果可以让警告流过,并且只有少量文件作为64位DLL,则可以尝试以下操作:
示例:
<Directory Id="dir..." Name="MyDLL">
<Component Id="cmp..." Guid="...">
<File Id="fil..." KeyPath="yes"
Source="...\MyDLLFile.dll"
SelfRegCost="0" />
</Component>
</Directory>
https://wixtoolset.org/documentation/manual/v3/xsd/wix/file.html
我只需要像我的包中那样管理一个DLL,它就可以工作