При добавлении ссылки на сборку, расположенную в каталоге решений, есть ли способ добавить ее относительно, чтобы при проверке и выходе из репозитория они были правильно указаны в проектах?
Visual Studio: ссылки на относительную сборку
Ответ 1
Чтобы расширить исходный комментарий Павла Минаева - GUI для Visual Studio поддерживает относительные ссылки с предположением, что ваш .sln является корнем относительной ссылки. Поэтому, если у вас есть решение C:\myProj\myProj.sln
, любые ссылки, которые вы добавляете в подпапки C:\myProj\
, автоматически добавляются как относительные ссылки.
Чтобы добавить относительную ссылку в отдельный каталог, например C:/myReferences/myDLL.dll
, выполните следующие действия:
- Добавьте ссылку в графический интерфейс Visual Studio, щелкнув правой кнопкой мыши проект в обозревателе решений и выбрав Добавить ссылку...
- Найти *.csproj, где эта ссылка существует, и открыть ее в текстовом редакторе
-
Отредактируйте <HintPath> будет равным
<HintPath>..\..\myReferences\myDLL.dll</HintPath>
Теперь он ссылается на C:\myReferences\myDLL.dll
.
Надеюсь, это поможет.
Ответ 2
Да, просто создайте каталог в своем решении, например lib/, а затем добавьте свою DLL в этот каталог в файловой системе и добавьте его в проект (Add- > Existing Item- > и т.д.). Затем добавьте ссылку, основанную на вашем проекте.
Я делал это несколько раз под svn и под cvs.
Ответ 3
Вероятно, самый простой способ добиться этого - просто добавить ссылку на сборку, а затем (вручную) исправить текстовое представление ссылки в соответствующем файле проекта Visual Studio (расширение .csproj), чтобы оно стало относительным.
Я делал это много раз в VS 2005 без каких-либо проблем.
Ответ 4
Как уже упоминалось ранее, вы можете вручную отредактировать файл проекта .csproj
, чтобы применить его вручную.
Я также заметил, что Visual Studio 2013 пытается применить относительный путь к ссылочному hintpath, вероятно, из-за попытки сделать файл проекта более переносимым.