При удалении DLL путь к указанной библиотеке DLL изменяется «по волшебству» - PullRequest
0 голосов
/ 03 февраля 2012

Вот ситуация:

У меня есть папка, содержащая библиотеки DLL, которые не являются частью моего решения - допустим, это .\libs. Я добавляю ссылки на эти библиотеки DLL. Я тогда строю. Все хорошо.

Если я затем удаляю папку libs и перестраиваю свое решение, компиляция все равно будет успешной! Странно - я бы ожидал ошибки компиляции, поскольку библиотеки dll там нет!

Но, глядя на свойства ссылок в Visual Studio, я вижу, что путь ссылок был изменен с .\libs\foo.dll на myproject\bin\Debug\foo.dll. Таким образом, он выбирает библиотеку DLL, на которую ссылаются, из своего старого результата сборки.

Если я открою myproject.csproj в текстовом редакторе, я увижу, что HintPath ссылки по-прежнему .\libs\foo.dll. Если я воссоздаю папку libs, Visual Studio все равно использует myproject\bin\Debug\foo.dll (она не возвращается к той самой DLL, которую я хочу!)

Это ожидаемое поведение? Есть ли способ остановить это поведение, потому что оно вызывает у меня проблемы - особенно когда я хочу перестроить свой проект с другими версиями библиотек: половину времени я обнаруживаю, что использую другую версию, чем я хотел.

1 Ответ

0 голосов
/ 03 февраля 2012

Это не магия. Свойство DLL Copy Local, вероятно, установлено в true, вот и все.
Если установить значение false, вы получите желаемое поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...