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, вероятно, из-за попытки сделать файл проекта более переносимым.