Страницы

Поиск по вопросам

среда, 17 октября 2018 г.

Как задать другой путь к dll?

Есть один .exe и одна .dll Когда в References указываю путь к dll, ставлю Copy Local = false. Так вот .exe пытаеться найти .dll у себя в bin\Debug и выбрасывает Exception: "Не удается найти указанный файл." Мне нужно, чтоб .exe тянул .dll из её родной директории, а не копировал .dll в сою директорию и потом уже тянул её оттуда.


Ответ

Флаг "Copy Local" к этому не имеет отношения (он только говорит студии, надо ли копировать dll в папку выхода проекта). Программа пытается загрузить dll сначала из файловой системы (текущая директория, файлы которые попадают в path и т.д.), потом из GAG. Соответственно, в Вашем случае, Вы скорее всего используете референс напрямую на dll и эта dll не в GAG Подробнее здесь и здесь Вам в любом случае надо будет: 1. Либо делать copy local 2. Либо класть dll в системные файлы. 3. Либо регистрировать dll в GAG 4. Либо в самой программе указывать путь к поиску dll AppDomain.CurrentDomain.AppendPrivatePath(@"bin\DLLs");

Комментариев нет:

Отправить комментарий