У меня есть большое решение в C# для Windows Phone 8 (VS 2012 Pro), состоящее из 12 проектов, которые используют IsolStorage и несколько внешних библиотек, таких как Newtonsoft. JSON, RestSharp, Unity for Dependency Injection и т. Д.Объединение нескольких DLL C# в один и экспорт объединенной dll для использования в другом проекте
Один из проектов предоставляет несколько интерфейсов для функциональности и выступает в качестве основного проекта. Я хочу объединить все DLL, полученные из всех проектов в решении, в одну DLL и использовать его в другом проекте.
Я ищу что-то похожее на статические библиотеки C++. Я хочу включить весь код из всех DLL, включая код из сторонних DLL, которые я использую.
Конечная цель - использовать мою объединенную DLL в качестве распространяемой DLL для других проектов.
Как я могу сделать это правильно?
Я пробовал с командной строкой ILMerge, но он вызывает ошибки, потому что я использую IsolStorage. Я также пытался использовать ILMergeGUI, который, похоже, согласен с тем, что я использую IsolStorage, но когда я пытаюсь использовать приведенную DLL, я получаю ошибки «Not Found», относящиеся к моим сторонним DLL.
Любые идеи? Объединение всех проектов из одного решения в одно возможно, но не предпочтительнее (плюс мне все равно нужно статически включать сторонние DLL).
Метод, предложенный в сообщении в блоге, полезен для EXE-файлов, а не для создания одного DLL-файла. Однако в комментариях к сообщению есть некоторое обходное решение: «Лучший вариант, о котором я могу думать, заключается в том, чтобы EXE (или хост) явно вызывал некоторый метод инициализации в не-внедренной библиотеке, чтобы этот метод мог зарегистрировать свою заинтересованность в событие AssemblyResolve. Другая возможность состоит в том, чтобы иметь различные места в регистре кода сборки с событием, используя какой-то одноэлементный шаблон. То есть, если DLL не зарегистрировалась в событии, не делайте этого иначе . (...) " –
Windows Phone 8 не является WPF, он основан на Silverlight (с битами WinRT и XNA), и каждое приложение представляет собой DLL, а не EXE ... Не то, чтобы это меняло это от ответа от" нет " , –
@PaulAnnetts, поэтому WinRT больше не принадлежит к управляемой dll, любые предложения по реализации необходимых результатов? Спасибо – David