Загрузка...

Как слить .dll и .exe в один файл?

Тема в разделе C# создана пользователем ZiGO356 17 май 2019. 692 просмотра

  1. ZiGO356
    ZiGO356 Автор темы 17 май 2019 Заблокирован(а) 101 26 мар 2019
    У меня тут два вопроса к знатокам возникло)))

    1. Предположим, есть win11.exe, в папке с ним лежит 99 .dll зависимостей. Есть ли аккуратный способ слить всё воедино?

    2. Нормально ли в C# прописывать using RootLib.Example; а потом using RootLib.Example.Something; ?

    Заранее благодарен за ответы, с меня :love:
     
    17 май 2019 Изменено
  2. ZiGO356
    ZiGO356 Автор темы 17 май 2019 Заблокирован(а) 101 26 мар 2019
    спасибо, обязательно попробую
     
  3. Timoxa12312
    Timoxa12312 17 май 2019 Заблокирован(а) 40 10 июл 2018
    если это длл не с Nuget, то Costura.Fody в помощь(загугли). Если своя длл/с нугета то воспользуйся ILMerge
     
  4. _ZnZ_
    _ZnZ_ 17 май 2019 63 7 май 2017
    2. Вообще пофиг
     
  5. ZiGO356
    ZiGO356 Автор темы 17 май 2019 Заблокирован(а) 101 26 мар 2019
    спасибо всем за ответы
     
  6. tounakker
    tounakker 19 май 2019 10 8 окт 2018
    По идее все импортируемые функции вшиваются компилятором в экзешник, разве нет?
     
  7. tounakker
    tounakker 19 май 2019 10 8 окт 2018
    Насчёт второго - сталкивался с таким, например при прописанном using System.Collections приходилось дописывать using System.Collections.Generic, так что это нормально
     
  8. tounakker
    tounakker 19 май 2019 10 8 окт 2018
  9. AikoSimidzu
    AikoSimidzu 21 май 2019 Творческий кризис- 2 года.:stitch:
    1) используй классы
    2) смотри, мы подключаем System.Windows.Forms
    И к примеру используем
    Код
    Clipboard.Set("123");
    , а можно написать полностью
    Код
     System.Windows.Forms.Clipboard.Set("123");
    .
    То есть, это нормально, если тебе влом прописывать одно и тоже, однако это не всегда правильный вариант. Почему?
    К примеру приведу такую тему:
    Мы имеем 2 либы и уже их подключили.
    Содержимое первого класса:
    Код

    ***
    public static void Test(string x)
    {
    MessageBox.Show(x);
    }

    Содержимое 2-й либы:
    Код

    ***
    public static void Test(string x)
    {
    Console.WriteLine(x);
    }
    И что ты в этом случае будешь делать, ммм?
    Ах да, основа кода:
    Код

    ***
    Test("Hello world!");
    Прошу прощения за ошибки, время поздно да пишу с телефона.
     
  10. tounakker
    tounakker 22 май 2019 10 8 окт 2018
    В шарпе такой случай относится к перегрузке методов. Кто не в курсе - это когда два метода по-разному работают, или принимают разные данные, но, самое главное, имеют одинаковые названия. В таком случае, если ты пишешь в VS, студия просто попросит тебя уточнить, к какому классу или библиотеке относится вызываемый тобой метод, вот и всё, а иначе возникнут ошибки компиляции
     
  11. AikoSimidzu
    AikoSimidzu 22 май 2019 Творческий кризис- 2 года.:stitch:
    Я веду к тому, что так просто не удобно.
     
  12. AikoSimidzu
    AikoSimidzu 22 май 2019 Творческий кризис- 2 года.:stitch:
  13. vitya790
    vitya790 27 май 2019 C# Developer | vityaSteam 19 3 июн 2017
    Мона в ресурсы залить и при запуске распаковывать.
     
  14. xaray
    xaray 31 май 2019 24 7 авг 2018
    Пишу как сделал у себя.
    1)Устанавливаешь ILMerge с сайта Microsoft
    2)Открываешь т.к. здесь( https://imgur.com/a/z95OecJ ) открыто и вставляешь к себе это "$(SolutionDir)merge_all.bat" "$(SolutionDir)" "$(TargetPath)" "$(ConfigurationName)"
    3)Создаёшь файл с именем merge_all.bat в первой папке проект(самая главная) и вписываешь вот это https://pastebin.com/tkiaY2r7
    В папке вывода будет папка Output и в ней один *.exe
    P.S. не помню где нашёл этот способ, но его пришлось переписать из-за ошибок
     
    31 май 2019 Изменено
Загрузка...
Top