Hereis ситуация:проекта изменения «волшебство», когда DLL удаляется
У меня есть папка, которая содержит библиотеки библиотеки DLL, которые не встроены как часть моего решения - позволяет сказать, что это .\libs
. Я добавляю ссылки на эти DLL. Затем я строю. Все отлично.
Если я затем удалю папку libs и перестрою мое решение, компиляция все равно будет успешной! Странно - я бы ожидал ошибок компиляции, поскольку библиотек DLL не существует!
Но, глядя на ссылочные свойства в Visual studio, я вижу, что путь ссылки был изменен с .\libs\foo.dll
на myproject\bin\Debug\foo.dll
. Таким образом, он собирает DLL, на которую ссылается, из своего старого выхода сборки.
Если я открою myproject.csproj в текстовом редакторе, я вижу, что ссылка HintPath по-прежнему .\libs\foo.dll
. Если я заново создаю папку libs
, визуальная студия все еще использует myproject\bin\Debug\foo.dll
(она не возвращается к актуальной DLL, которую я хочу!)
Ожидается ли такое поведение? Есть ли способ остановить это поведение, потому что это вызывает у меня проблемы - особенно когда я хочу перестроить myproject с разными версиями libs: половина времени, когда я нахожу, что использую другую версию, чем то, что я хотел.
Возможный дубликат [HintPath vs ReferencePath в Visual Studio] (http://stackoverflow.com/questions/1882038/hintpath-vs-referencepath-in-visual-studio) –
см. Ответ ниже –
Если это больно, сделайте это. Начиная с копирования DLL в/libs, вместо этого ссылайтесь на их исходное место сборки. Если вам нужно скопировать по какой-то причине, то проверьте их на исходный контроль. Если они меняются слишком часто, чтобы сделать это практическим, добавьте проекты, которые создали их для вашего решения. –