VS2008 предпочитает ссылку GAC на сборки в папке решений - PullRequest
0 голосов
/ 16 июня 2009

Я использую некоторые сторонние библиотеки в своем решении и сохранил их в отдельной контролируемой исходным кодом папке с именем 3rdParty. Я добавил ссылки на библиотеки DLL в этой папке из среды разработки VS2008. Однако я обнаружил, что после сохранения, закрытия и открытия решения ссылки были изменены, чтобы указывать на сборки в GAC.

Причиной использования папки 3rdParty является то, что я могу легко получить последнюю версию с любого компьютера и построить свой проект, не устанавливая ничего в папку GAC. Как я могу заставить VS2008 оставить мои ссылки нетронутыми?

Редактировать: Увидев ответ Бенджола, мне стало интересно, смогу ли я использовать манифест сборки, чтобы исправить это. Поможет ли это решить мою проблему?

Ответы [ 4 ]

0 голосов
/ 09 сентября 2010

Для того, чтобы он выбрал вашу локальную сборку, вы должны зайти в свойства проекта, на вкладке Reference Paths и добавить локальный каталог (в вашем случае это третье лицо) в список каталогов. Это должно решить вашу проблему.

0 голосов
/ 16 июня 2009

Для ссылок существует параметр «CopyLocal», если вы установите для него значение true, а для параметра SpecificVersion установлено значение false, тогда он должен использовать локальные ссылки, а не GAC.

На библиотеки GAC ссылаются раньше локальных, потому что они предназначены для совместного использования, но их следует выбирать только в том случае, если указана конкретная версия.

Можно ли удалить эти сборки из GAC, если они продолжают вызывать проблемы?

0 голосов
/ 23 июля 2009

Даже если бы вы могли заставить VS просматривать вашу локальную папку, это не помогло бы во время выполнения (я имею в виду F5 / время отладки), потому что .Net в любом случае сначала будет искать в GAC.

И со ссылкой на CopyLocal, AFAIK, который просто указывает компилятору скопировать версию вашей DLL-библиотеки, на которую есть ссылки, в папку / bin вашего проекта, поэтому не должно быть никаких проблем со «сложными» путями.

0 голосов
/ 16 июня 2009

Мы используем аналогичный подход здесь, где я работаю, хотя мы называем папку ReferencedDLLs, и у нас до сих пор с этим не было никаких проблем.

Однако вы можете попробовать отредактировать файл проекта, удалив PathHint для рассматриваемых ссылок. Таким образом, VS2008 не знает, где искать, и он начнет нормальный подход.

...