Не подключается dll библиотека - C#
Формулировка задачи:
Здравствуйте!
Пишу мультиязычную программу. Для каждого языка создаю отдельную dll, что-бы ее можно было кинуть в папочку с прогой и прога сразу нашла новый язык, без всяких using <имя_библиотеки> в коде основной программы.
Для этого использую следущий код
В данном варианте он работает.
НО, если переместить dll-ку в другую папку и указать путь к этой папке
то в строке Assembly asm = Assembly.Load(str); вылетает исключение "Не удалось загрузить файл или сборку "UA" либо одну из их зависимостей. Не удается найти указанный файл.", хотя dll-ка в папке есть и переменная str сначала равна имени файла библиотеки "RU.dll", а после сплита "RU", чему собственно str и должна равняться.
Вопрос, почему?
Листинг программы
- string programPath = Environment.CurrentDirectory;
- DirectoryInfo dir = new DirectoryInfo(programPath);
- FileInfo[] files = dir.GetFiles("*.dll");
- foreach (var item in files)
- {
- string str = item.Name;
- str = str.Split('.')[0];
- try
- {
- Assembly asm = Assembly.Load(str);
- Type T = asm.GetType(str + ".LangClass");
- FieldInfo Str3 = T.GetField("language");
- object obj = Activator.CreateInstance(T);
- MessageBox.Show(Str3.GetValue(obj).ToString());
- }
- catch
- {
- MessageBox.Show("Какой то сбой !!!");
- }
- }
Листинг программы
- string path = programPath + "\\Files\\Languages";
- DirectoryInfo dir = new DirectoryInfo(path);
Решение задачи: «Не подключается dll библиотека»
textual
Листинг программы
- string programPath = AppDomain.CurrentDomain.BaseDirectory;
- string path = Path.Combine(programPath, @"Files\Languages");
- string[] files = Directory.GetFiles(path, "*.dll");
- foreach (string dllPath in files)
- {
- string name = Path.GetFileNameWithoutExtension(dllPath);
- try
- {
- Assembly asm = Assembly.LoadFrom(dllPath);
- Type T = asm.GetType(name + ".LangClass");
- FieldInfo Str3 = T.GetField("language");
- object obj = Activator.CreateInstance(T);
- MessageBox.Show(Str3.GetValue(obj).ToString());
- }
- catch
- {
- MessageBox.Show("Какой то сбой !!!");
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д