Czy podczas dodawania odwołania do zestawu znajdującego się w katalogu rozwiązania istnieje sposób na dodanie go względnie, tak aby po wpisaniu i wyrejestrowaniu z repozytorium odwoływanie się do niego w projektach było prawidłowe?
Czy podczas dodawania odwołania do zestawu znajdującego się w katalogu rozwiązania istnieje sposób na dodanie go względnie, tak aby po wpisaniu i wyrejestrowaniu z repozytorium odwoływanie się do niego w projektach było prawidłowe?
Odpowiedzi:
Aby rozwinąć oryginalny komentarz Pavela Minaeva - interfejs GUI dla programu Visual Studio obsługuje odwołania względne przy założeniu, że plik .sln jest katalogiem głównym odwołania względnego. Więc jeśli masz rozwiązanie C:\myProj\myProj.sln
, wszelkie odniesienia dodane w podfolderach C:\myProj\
są automatycznie dodawane jako odniesienia względne.
Aby dodać odwołanie względne w oddzielnym katalogu, na przykład C:/myReferences/myDLL.dll
, wykonaj następujące czynności:
Edytuj <HintPath>, aby był równy
<HintPath>..\..\myReferences\myDLL.dll</HintPath>
To teraz odnosi się C:\myReferences\myDLL.dll
.
Mam nadzieję że to pomoże.
Tak, po prostu utwórz katalog w swoim rozwiązaniu, taki jak lib /, a następnie dodaj swoją bibliotekę dll do tego katalogu w systemie plików i dodaj ją do projektu (Dodaj-> Istniejący element-> itd.). Następnie dodaj odniesienie na podstawie projektu.
Robiłem to kilka razy pod svn i pod cvs.
W VS 2017 jest to automatyczne. Tak Add Reference
jak zwykle.
Zauważ, że w Reference Properties
bezwzględnej ścieżce jest pokazana, ale w .vbproj/.csproj
względnej jest używana.
<Reference Include="NETnetworkmanager">
<HintPath>..\..\libs\NETnetworkmanager.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
Prawdopodobnie najłatwiejszym sposobem osiągnięcia tego jest po prostu dodanie odwołania do zestawu, a następnie (ręcznie) poprawienie tekstowej reprezentacji odwołania w odpowiednim pliku projektu programu Visual Studio (rozszerzenie .csproj), tak aby stało się ono względne.
Robiłem to wiele razy w VS 2005 bez żadnych problemów.
Mógłbym się tutaj wyłączyć, ale wydaje się, że odpowiedź jest dość oczywista: spójrz na ścieżki odniesienia we właściwościach projektu. W naszej konfiguracji dodałem nasz wspólny folder repozytorium do okna graficznego interfejsu użytkownika ścieżki referencyjnej, tak jak to
W ten sposób mogę skopiować moje biblioteki DLL (gotowe do publikacji) do tego folderu, a każdy programista otrzymuje teraz zaktualizowaną bibliotekę DLL za każdym razem, gdy kompiluje z tego folderu.
Jeśli dll zostanie znaleziona w rozwiązaniu, konstruktor powinien nadać priorytet wersji lokalnej w stosunku do opublikowanej wersji zespołu.