ILMerge и MSBuild - объединенный EXE-файл выдает ошибку во время выполнения - PullRequest
0 голосов
/ 22 августа 2011

После добавления ILMerge к моим задачам пост-сборки и разработки командной строки, я успешно получаю объединенную программу MyMerged.exe

Но когда я запускаю его, я получаю исключение

Необработанное исключение: System.TypeLoadException: Не удалось загрузить тип «Microsoft.Build.Utilities.TaskItem» из сборки «mymerged, версия = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null», поскольку метод «.ctor» не имеет реализации (без RVA). в MyProgram.Program.Main (String [] args)

Это ошибка в ILMerge, которая не обрабатывает ситуацию, когда нет конструктора, или ошибка в TaskItem из-за ее отсутствия.

спасибо

1 Ответ

2 голосов
/ 17 декабря 2011

Включите Microsoft.Build.Utilities.dll в командной строке ILMerge, чтобы он был объединен с вашей сборкой и найден.

Если вы определили дубликаты типов и используете переключатель командной строки /allowDup, ILMerge переименует дубликаты типов, что также может вызвать ошибки «Не удалось загрузить тип ...» и непредвиденное поведение во время выполнения, особеннокогда используется отражение.

...