2009-07-31 9 views
73

Dodając odwołanie do zespołu znajdującego się w katalogu rozwiązania, czy istnieje sposób na dodanie go względnie, tak aby po sprawdzeniu i usunięciu z repozytorium był poprawnie odwoływany w projektach?Visual Studio: Relative Assembly Referencje Ścieżki

+11

Jeśli nie działa poprawnie z interfejsu użytkownika, pamiętaj, że możesz po prostu ręcznie edytować plik .proj bezpośrednio i zmienić ścieżkę na względną. Gdy zmienisz ją tak czy inaczej, pozostanie ona tak, jak ją umieściłeś. –

+1

W Visual Studio 2010 ścieżki referencyjne są domyślnie przechowywane jako względne, więc jeśli tak się dzieje, coś innego jest nie tak. W moim przypadku byłbym całkowicie ignorował biblioteki dll z kontroli wersji, więc mogłem skompilować rozwiązanie, ale moi koledzy z pracy nie mogli. –

Odpowiedz

101

Aby rozwinąć oryginalny komentarz Pavel Minaev - GUI dla Visual Studio obsługuje odniesienia względne z założeniem, że .sln jest źródłem względnego odniesienia. Więc jeśli masz rozwiązanie C:\myProj\myProj.sln, wszelkie odwołania dodane w podfolderach C:\myProj\ są automatycznie dodawane jako odniesienia względne.

Aby dodać odwołanie względne w osobnym katalogu, takich jak C:/myReferences/myDLL.dll, wykonaj następujące czynności:

  1. dodać odwołanie w Visual Studio GUI klikając prawym przyciskiem myszy projektu w Solution Explorer i wybierając Add Reference. ..
  2. Znajdź * .csproj gdzie istnieje odniesienie i otwórz go w edytorze tekstu
  3. edytować < HintPath> być równa

    <HintPath>..\..\myReferences\myDLL.dll</HintPath>

To teraz odwołuje C:\myReferences\myDLL.dll.

Mam nadzieję, że to pomoże.

+10

Rozumiem, że jest to pomocne i poprawne, ale czy VS gui * poważnie * nie zapewnia sposobu na dodanie względnego odniesienia? – kdbanman

+3

W VS 2015 domyślnie otrzymałem to zachowanie (ścieżka względna). – Mugen

+1

Byłem przekonany, że dodałem absolutną ścieżkę, dopóki nie podążyłem za twoimi wskazówkami z ciekawości. VS wykazał bezwzględną ścieżkę we właściwościach referencyjnych, ale pokazano jako już względny. Okazuje się, że brakowało mi plików O_o lolimaderp! – donutguy640

7

Tak, po prostu utwórz katalog w swoim rozwiązaniu, jak lib /, a następnie dodaj bibliotekę dll do tego katalogu w systemie plików i dodaj go do projektu (Dodaj-> Istniejący element-> itd.). Następnie dodaj referencję na podstawie twojego projektu.

Zrobiłem to kilka razy w svn i pod cvs.

+4

Nie musisz dodawać biblioteki dll do samego projektu, wystarczy dodać do niej odwołanie. Najlepiej jest dodać cały katalog 'lib' do kontrolki źródłowej. Zobacz http://code.google.com/p/projectpilot/source/browse/#svn/trunk jako przykład. –

+1

Masz rację. Sprawdziłem stary projekt i ani katalog, ani biblioteki dll nie zostały dodane do samego projektu, tylko do repozytorium. Odniesienie odnosi się wówczas do projektu. Przepraszam za to. – Freddy

2

Najprawdopodobniej najłatwiejszym sposobem osiągnięcia tego jest dodanie odniesienia do złożenia, a następnie (ręczne) poprawienie reprezentacji tekstowej odwołania w odpowiednim pliku projektu Visual Studio (rozszerzenie .csproj) w taki sposób, że staje się względne .

Zrobiłem to wiele razy w VS 2005 bez żadnych problemów.

+3

Myślę, że nie trzeba ręcznie modyfikować pliku projektu. Z mojego doświadczenia Visual Studio zawsze korzysta względne pathes. Jednorazowo musiałem ręcznie zmodyfikować plik projektu, gdy chciałem udostępnić plik klucza (.snk). Visual Studio zawsze po prostu kopiuje plik klucza do katalogu projektu, co skutkuje kilkoma kopiami pliku klucza. –

0

Jak wspomniano wcześniej, można ręcznie edytować plik projektu .csproj, aby zastosować go ręcznie.

Zauważyłem również, że Visual Studio 2013 próbuje zastosować względną ścieżkę do referencyjnej wskazówki, prawdopodobnie z powodu próby uczynienia pliku projektu bardziej przenośnym.

Powiązane problemy