При додаванні посилання на збірку, розташовану в каталозі рішення, чи є спосіб додати її відносно, щоб при реєстрації та виході зі сховища на неї правильно посилалися в проектах?
При додаванні посилання на збірку, розташовану в каталозі рішення, чи є спосіб додати її відносно, щоб при реєстрації та виході зі сховища на неї правильно посилалися в проектах?
Відповіді:
Щоб розширити оригінальний коментар Павла Мінаєва - графічний інтерфейс для Visual Studio підтримує відносні посилання з припущенням, що ваш .sln є коренем відносного посилання. Отже, якщо у вас є рішення C:\myProj\myProj.sln
, будь-які посилання, які ви додаєте в підкаталоги C:\myProj\
, автоматично додаються як відносні посилання.
Щоб додати відносне посилання в окремий каталог, наприклад C:/myReferences/myDLL.dll
, виконайте такі дії:
Відредагуйте <HintPath> рівним
<HintPath>..\..\myReferences\myDLL.dll</HintPath>
Це зараз посилання C:\myReferences\myDLL.dll
.
Сподіваюся, це допомагає.
Так, просто створіть у своєму рішенні каталог, наприклад lib /, а потім додайте свою dll до цього каталогу у файловій системі та додайте його до проекту (Додати-> Існуючий елемент-> тощо). Потім додайте посилання на основі вашого проекту.
Я робив це кілька разів під svn та під cvs.
У VS 2017 це автоматично. Тож Add Reference
як зазвичай.
Зверніть увагу, що в Reference Properties
абсолютному шляху показано, але .vbproj/.csproj
використовується відносний.
<Reference Include="NETnetworkmanager">
<HintPath>..\..\libs\NETnetworkmanager.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
Можливо, найпростіший спосіб досягти цього - просто додати посилання на збірку, а потім (вручну) закріпити текстове представлення посилання у відповідному файлі проекту Visual Studio (розширення .csproj) таким чином, щоб воно стало відносним.
Я робив це безліч разів у VS 2005 без жодних проблем.
Я міг би тут не працювати, але, схоже, відповідь цілком очевидна: подивіться на посилальні шляхи у властивостях проекту. Під час налаштування я додав нашу загальну папку сховища до вікна графічного інтерфейсу ref path, приблизно так
Таким чином я можу скопіювати свої DLL-файли (готові до публікації) в цю папку, і кожен розробник тепер отримує оновлену бібліотеку DLL щоразу, коли вона створюється з цієї папки.
Якщо dll знайдено в Рішенні, розробник повинен надати пріоритет локальній версії над опублікованою груповою версією.