10 / 10 / 1
Регистрация: 22.12.2012
Сообщений: 508
|
|||||||||||
1 | |||||||||||
Не подключается dll библиотека14.01.2015, 16:42. Показов 3113. Ответов 11
Метки нет Все метки)
(
Здравствуйте, уважаемые форумчане!
Пишу мультиязычную программу. Для каждого языка создаю отдельную dll, что-бы ее можно было кинуть в папочку с прогой и прога сразу нашла новый язык, без всяких using <имя_библиотеки> в коде основной программы. Для этого использую следущий код
НО, если переместить dll-ку в другую папку и указать путь к этой папке
Вопрос, почему?
0
|
|
14.01.2015, 16:42 | |
Ответы с готовыми решениями:
11
Не подключается библиотека Не подключается библиотека SmallBasic.Library Не подключается библиотека small basic в c# |
123 / 123 / 72
Регистрация: 11.05.2014
Сообщений: 331
|
|
14.01.2015, 19:36 | 2 |
Попробуйте использовать Assembly.LoadFrom вместо Assembly.Load.
0
|
Администратор
![]() |
|
14.01.2015, 23:10 | 3 |
qwertun, почему ты не использвуешь стандартные механизмы локализации с использованием satellite assemblies с локализованными ресурсами? Windows Forms и WPF поддерживают это.
0
|
10 / 10 / 1
Регистрация: 22.12.2012
Сообщений: 508
|
|
15.01.2015, 00:22 [ТС] | 4 |
0
|
Администратор
![]() |
|
15.01.2015, 00:42 | 5 |
Значит изучи их прежде чем писать собственную реализацию:
1
|
10 / 10 / 1
Регистрация: 22.12.2012
Сообщений: 508
|
|||||||||||
15.01.2015, 11:48 [ТС] | 6 | ||||||||||
теперь в
Если делать Assembly.LoadFile результат такой-же как и при Assembly.LoadFrom. Добавлено через 4 минуты OwenGlendower, мне не очень хочеться так делать потому-что каждый новый язык нада прописывать в коде программы, добавлять файлы ресурсов и тд и тп. Я выбрал метод, который делаю, потому-что добавление нового языка не приведет к изменению кода самой программы, просто dll-ку кидаем в папку с прогой и всё, есть новый язык. Добавлено через 12 минут Detect, работает, спасибо, я просто немного зафейлил и в Type T = asm.GetType писал полный путь вместо имени сборки)
0
|
Администратор
![]() |
||||||
15.01.2015, 12:46 | 7 | |||||
qwertun,
Тебе виднее, но стандартный механизм локализации тоже не требует вносить изменения в код для поддержки нового языка.
В приведенном примере советую заменить Environment.CurrentDirectory на AppDomain.CurrentDomain.BaseDirectory и использовать класс Path для работы с путями:
0
|
10 / 10 / 1
Регистрация: 22.12.2012
Сообщений: 508
|
|
15.01.2015, 13:40 [ТС] | 8 |
0
|
Администратор
![]() |
|
15.01.2015, 13:45 | 9 |
qwertun, тем что т.н. "текущий каталог" может указывать куда угодно, а AppDomain.CurrentDomain.BaseDirectory всегда указывает на папку приложения. Класс Path делает код более понятным и облегчает работу с путями.
0
|
10 / 10 / 1
Регистрация: 22.12.2012
Сообщений: 508
|
|
16.01.2015, 12:02 [ТС] | 10 |
ну хз, юзаю Environment.CurrentDirectory, и он всегда указывает на папку приложения
0
|
Администратор
![]() |
|
16.01.2015, 19:47 | 11 |
qwertun, вот несколько ситуаций когда CurrentDirectory будет указывать не на папку с программой:
1
|
10 / 10 / 1
Регистрация: 22.12.2012
Сообщений: 508
|
|
16.01.2015, 21:18 [ТС] | 12 |
OwenGlendower, спасибо за информацию
0
|
16.01.2015, 21:18 | |
Помогаю со студенческими работами здесь
12
Не подключается dll. Директива using не работает
Библиотека(dll) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |