Загрузка...

Проверка на присутствие DLL (библиотек) в папке с программой C#

Тема в разделе C# создана пользователем RaysMorgan 14 авг 2016. 957 просмотров

Загрузка...
  1. RaysMorgan
    RaysMorgan Автор темы 14 авг 2016 https://lolz.live/support-tickets/open 51 794 7 мар 2013
    Некоторые юзеры не полностью распаковывают архив с программой и дллками, если библиотеки не будет в папке с программой, то она будет некорректно работать или вообще не откроется.

    Идём в класс Program.cs, добавляем директиву System.IO для работы с файлами (using System.IO)
    Далее ищем метод Main(), в самом начале вставляем:
    Код

    if (!File.Exists("xNet.dll"))
    {
    MessageBox.Show("Отсутствует xNet.dll! Эта библиотека должна лежать вместе в папке с программой! Нажмите ОК, чтобы скачать архив с программой и DLL");
    Application.Exit();
    return;
    }

    Вместо xNet.dll вставляем нужную вам библиотеку =)
     
  2. AnyBoom
    AnyBoom 15 авг 2016 0 13 авг 2016
    Не будет работать, даю 110%.
     
  3. EvilBanana
    EvilBanana 15 авг 2016 Заблокирован(а)
    но почему работает тогда?
     
  4. RaysMorgan
    RaysMorgan Автор темы 15 авг 2016 https://lolz.live/support-tickets/open 51 794 7 мар 2013
    AnyBoom, код не будет работать? Работает, если его вставлять в Program.cs, а не форму =)
     
  5. AnyBoom
    AnyBoom 15 авг 2016 0 13 авг 2016
    Я понимаю, что нужно вставить в Program.cs, хорошо, буду так делать.
     
  6. RaysMorgan
    RaysMorgan Автор темы 15 авг 2016 https://lolz.live/support-tickets/open 51 794 7 мар 2013
    AnyBoom, если это делать в форме, то будет расход лишних ресурсов компьютера. Зачем загружать форму, если нет нужных длл?)
     
  7. iPro_inactive
    iPro_inactive 16 авг 2016 Заблокирован(а) 30 15 июн 2016
    Есть пизже способ через AppDomain, там что то типа такого
    Код

    {
    AppDomain.CurrentDomain.AssemblyResolve += ResolveEventHandler;
    }

    private static Assembly ResolveEventHandler(object sender, ResolveEventArgs args)
    {
    // В args вся информация об отсутствующей сборке
    }
    Так же в Program.cs все это делается. Тут же можно сделать OpenFileDialog что бы пользователь сам цепанул сборку :O
     
  8. AnyBoom
    AnyBoom 17 авг 2016 0 13 авг 2016
    ыПро, как всегда пиздатую фичу скажит.
     
Top