Heat.exe: 64-разрядный.dll не удается преобразовать в 64-разрядный.msi

Я попытался сгенерировать 64-битный установщик FireBreath MSI с помощью heat.exe, но получил следующий вывод:

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, я скопировал MyPlugin_auto.wxs, сгенерированный из 32-битного.dll, и собрал заново, используя 64-битный.dll и MyPlugin_auto.wxs, который был скопирован ранее. 64-битный msi был сгенерирован без ошибок, я установил его, протестировал и он работает, но я хотел бы спросить, если это лучший способ преодолеть ошибку heat.exe.

1 ответ

Heat сообщает вам, что он обнаружил Dll с открытой функцией DllRegisterServer() и что ему не удалось собрать какую-либо информацию COM. Обычно это означает, что в DLL отсутствуют зависимости и что DllRegisterServer() не удалось правильно запустить во время сбора данных.

Я бы посмотрел на DLL, используя Зависит, и поищу отсутствующие зависимости. Поместите эти DLL в каталог и попробуйте снова собрать.

Другие вопросы по тегам