Загрузка...

How to merge .dll and .exe into one file?

Thread in C# created by ZiGO356 May 17, 2019. 704 views

  1. ZiGO356
    ZiGO356 Topic starter May 17, 2019 Banned 101 Mar 26, 2019
    У меня тут два вопроса к знатокам возникло)))

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

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

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

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

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

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

    ***
    Test("Hello world!");
    Прошу прощения за ошибки, время поздно да пишу с телефона.
     
  10. tounakker
    tounakker May 22, 2019 10 Oct 8, 2018
    В шарпе такой случай относится к перегрузке методов. Кто не в курсе - это когда два метода по-разному работают, или принимают разные данные, но, самое главное, имеют одинаковые названия. В таком случае, если ты пишешь в VS, студия просто попросит тебя уточнить, к какому классу или библиотеке относится вызываемый тобой метод, вот и всё, а иначе возникнут ошибки компиляции
     
  11. AikoSimidzu
    AikoSimidzu May 22, 2019 Творческий кризис- 2 года.:stitch:
    Я веду к тому, что так просто не удобно.
     
  12. AikoSimidzu
    AikoSimidzu May 22, 2019 Творческий кризис- 2 года.:stitch:
  13. vitya790
    vitya790 May 27, 2019 19 Jun 3, 2017
    Мона в ресурсы залить и при запуске распаковывать.
     
  14. xaray
    xaray May 31, 2019 24 Aug 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. не помню где нашёл этот способ, но его пришлось переписать из-за ошибок
     
Top
Loading...