.NET EXE все еще пытается найти DLL после слияния с помощью ILMerge - PullRequest
0 голосов
/ 18 августа 2011

Я пытаюсь выполнить простое объединение с помощью инструмента ILMerge для объединения DLL с исполняемым файлом.Само объединение работает нормально, но после того, как я запустил объединенный EXE-файл, он все еще пытается найти исходную DLL (например, если она вообще не была объединена с EXE-файлом).

Обновляет ли ILMerge ссылки на внутренниеили я должен что-то делать вручную?Я предполагал, что ILMerge все делает автоматически.

И EXE, и DLL являются WinForms .NET 3.5.

Ответы [ 3 ]

1 голос
/ 20 августа 2011

Проблема была вызвана другими неслитыми DLL, которые пытаются использовать оригинальную сборку.Я должен был также объединить их, и теперь все работает правильно.

1 голос
/ 18 августа 2011

ILMerge делает несколько вещей автоматически ...Но ILMerge фактически изменяет внутреннюю структуру DLL + EXE ...

Не все библиотеки DLL и т. Д., Например, "будучи" перепутаны с "таким образом ...

Например, когда EXE и / или DLL используют Reflection или объединение WPF, могут привести к их ошибке ...

В этих ситуациях «встраивание» (а не слияние) работает лучше всего ... хотя вам придется написать около 10 строк кода - см. http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx

ЕСЛИ вам просто нужен инструментчтобы это произошло (и некоторые другие вещи), есть некоторые - например, SmartAssembly ...

Обратите внимание: любое из вышеперечисленного работает только с .NET DLL, а не с нативными ...

0 голосов
/ 18 августа 2011

Возможно ли, что одна из рассматриваемых DLL пытается заново открыть себя?

...