@Dima_Demichev

Как сбросить Балласт создаваемый библиотекой Newtonsoft.Json c#?

Установил библиотеку Newtonsoft.Json,но она создает файл Newtonsoft.Json.dll рядом с приложением (без него приложение соответственно не работает). Можно ли как-нибудь его "спрятать", т.к. не комильфо таскать пользователю эту .dll'ку.
  • Вопрос задан
  • 840 просмотров
Решения вопроса 2
devspec
@devspec
Помогло? Отметь решением
Никому она не мешает, эта dll-ка.
Но если так уж нужно - stackoverflow.com/questions/10137937/merge-dll-into-exe
Ответ написан
DmitryITWorksMakarov
@DmitryITWorksMakarov
Дж.Рихтер (тот самый, который CLR via С#) предлагает в таких случаях разместить библиотеку в ресурсы сборки и подгружать ее оттуда когда попросят.
У меня это сделано так:

В файле Program.cs
const string DOCUMENT_FORMAT_OPEN_XML = "DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35";
private static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            AppDomain.CurrentDomain.AssemblyResolve += (sender, e) =>
            {
                switch (e.Name)
                {
                    case DOCUMENT_FORMAT_OPEN_XML: return Assembly.Load(Properties.Resources.DocumentFormat_OpenXml);
                    default: return null;
                }
            };

            Application.Run(new MainFrom());
        }


P.S. Создатель ILMerge прокоментировал этот способ: "Если б я знал что так можно, то бы не стал ILMerge делать".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы