Heat.exe Cannot Harvest TypeLib Info from a 64-bit

2019-06-20 00:30发布

I have a 64-bit-only COM DLL that I want to harvest typelib info from, using heat.exe. But when I attempt to do that, I get the error 193 (bad executable format). Is heat.exe 32-bit only, and cannot work with 64-bit executables? I found only one version of heat.exe on my machine.

Thanks.

标签: com wix win64
4条回答
神经病院院长
2楼-- · 2019-06-20 00:32

In my case I needed a separate package for 32 and 64 bit COM DLLs. Using the harvest from the 32bit DLL worked for the 64bit version. Just needed to make sure the build configuration was 64bit specific.

查看更多
3楼-- · 2019-06-20 00:44

I have had similar issues, whentrying to to harvest vb6 and non .net libraries. Can you try heat with -scom -o

If that doesn't solve the problem, can you paste your heat command here.

查看更多
在下西门庆
4楼-- · 2019-06-20 00:52

Unfortunately heat.exe is indeed 32-bit and can therefore only harvest 32-bit COM registrations: http://wixtoolset.org/issues/1661/

However 64-bit heat.exe extensions are discussed here: http://sourceforge.net/p/wix/mailman/message/30541133/ and code can be found here: https://wix.codeplex.com/SourceControl/network/forks/roberthyang/NewHeatExtension/latest

查看更多
叛逆
5楼-- · 2019-06-20 00:52

Depending on what you are trying to do there may be a solution, if you just need to add the Win64 attribute you can do that through candle.exe see here

Otherwise you may also have found a known bug that is unresolved.

查看更多
登录 后发表回答