Загрузка...

Checking for the presence of DLLs (libraries) in the folder with the C# program

Thread in C# created by RaysMorgan Aug 14, 2016. 976 views

  1. RaysMorgan
    RaysMorgan Topic starter Aug 14, 2016 Че скажете 53,985 Mar 7, 2013
    Некоторые юзеры не полностью распаковывают архив с программой и дллками, если библиотеки не будет в папке с программой, то она будет некорректно работать или вообще не откроется.

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

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

    Вместо xNet.dll вставляем нужную вам библиотеку =)
     
  2. AnyBoom
    AnyBoom Aug 15, 2016 0 Aug 13, 2016
    Не будет работать, даю 110%.
     
  3. EvilBanana
    но почему работает тогда?
     
  4. RaysMorgan
    RaysMorgan Topic starter Aug 15, 2016 Че скажете 53,985 Mar 7, 2013
    AnyBoom, код не будет работать? Работает, если его вставлять в Program.cs, а не форму =)
     
  5. AnyBoom
    AnyBoom Aug 15, 2016 0 Aug 13, 2016
    Я понимаю, что нужно вставить в Program.cs, хорошо, буду так делать.
     
  6. RaysMorgan
    RaysMorgan Topic starter Aug 15, 2016 Че скажете 53,985 Mar 7, 2013
    AnyBoom, если это делать в форме, то будет расход лишних ресурсов компьютера. Зачем загружать форму, если нет нужных длл?)
     
  7. iPro_inactive
    iPro_inactive Aug 16, 2016 Banned 30 Jun 15, 2016
    Есть пизже способ через AppDomain, там что то типа такого
    Code

    {
    AppDomain.CurrentDomain.AssemblyResolve += ResolveEventHandler;
    }

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