Поиск dll в определенной папке - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Моя программа использует несколько самописных dll. Если я ложу эти библиотеки рядом с программой - она прекрасно запускается. Но стоит мне переместить их в другую папку, скажем /lib/ - то программа не работает. Подскажите, пожалуйста, как сделать так, что бы программа искала эти библиотеки именно в этой папке?

Решение задачи: «Поиск dll в определенной папке»

textual
Листинг программы
internal static class CustomDirectories
    {
        public const string LibDirectory = "Lib";
    }
    
    class Program
    {
 
        static void Test()
        {
            var contract = new JsonArrayContract(typeof (string));
            Console.ReadKey(true);
        }
 
        private static void Main(string[] args)
        {
            try
            {
                AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
                Test();
                Console.ReadKey(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
 
        private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
        {
                Console.WriteLine($"Could not found assembly: {args.Name}");                
                var fullPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, CustomDirectories.LibDirectory, string.Format($"{args.Name.Split(',').First()}.dll"));
                return Assembly.LoadFile(fullPath);
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5
Похожие ответы