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 в каталог и попробуйте снова собрать.