HEAT5151 Указанное имя сборки или кодовая база недействительны.

При создании моего проекта WiX с WiX 3.8 в VS 2013 я получаю:

heat.exe(0,0): warning HEAT5151: Could not harvest data from a file that was expected to be an assembly: C:\local\eknapp\Workspace-Dispatcher\client\software\DISP.DesktopClient\DISP.DesktopClient\bin\debug\DISP.API.UI.dll. If this file is not an assembly you can ignore this warning. Otherwise, this error detail may be helpful to diagnose the failure: The given assembly name or codebase, 
'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll', was invalid.

Я проверил GAC, и WindowsBase.dll версии 4.0 там есть. Я заглянул внутрь обеих сборок с помощью JustDecompile от Telerik, и все выглядит нормально. Приложение запускается без проблем как в VS, так и при установке с (очевидно, несовершенным) .msi на любом количестве машин.

Любые идеи?


person MonteChristo    schedule 03.01.2014    source источник
comment
Я думаю, что это связанный поток: stackoverflow.com/questions/5343908/. По сути, в нем говорится, что вы не должны ссылаться на библиотеки DLL из GAC в своем коде WiX ни явно, ни черезheat.exe.   -  person Yan Sklyarenko    schedule 28.02.2014


Ответы (1)


вы не должны собирать файлы DLL из GAC. если вы действительно хотите, вы можете использовать копию локального истинного атрибута, однако это ошибка для их сбора.

Если я не ошибаюсь, этот файл DLL поставляется с .Net, поэтому вам может потребоваться установить .net для вашего пользователя с помощью вашего установщика.

прочитайте эту ошибку wix http://sourceforge.net/p/wix/bugs/2082/

person Gilad    schedule 25.03.2014
comment
У меня .Нет 4.5.1. установлен на моей машине разработки. Я явно не собираю сборку WindowsBase. Я собираю другие dll, такие как log4net и prism. Заглядывает ли тепло внутрь них, чтобы найти транзитивные зависимости? - person MonteChristo; 28.03.2014
comment
Ссылка на баг 2082 тоже не помогла, так как я не использую опцию -pog. - person MonteChristo; 28.03.2014