2010-02-23 21 views
10

Zawsze korzystałem z opcji Visual Studio Dependencies, aby upewnić się, że na przykład podczas budowania moich projektów C++ zostaną zbudowane również zależne projekty LIB lub DLL. Jednak wciąż słyszę, jak ludzie wspominają o "referencjach" i zastanawiali się, że z VS 2010 na horyzoncie, powinienem zmieniać sposób, w jaki to robię.Zależności MSVC a Referencje

Czy są jakieś korzyści z używania odniesień do zależności lub czy jest to pierwsza funkcja .NET? Obecnie używam VS2008.

Odpowiedz

16

Wolę za pomocą referencji, ponieważ zostały one wprowadzone do niezarządzanego C++ w VS 2005. Różnica (w niezarządzanych C++ perspektywy dewelopera) jest to, że odniesienie jest przechowywany w .vcproj pliku, natomiast zależności projektu są przechowywane w .sln plik.

Ta różnica oznacza, że ​​gdy ponownie używasz swojego projektu w różnych rozwiązaniach (i często to robię), nie musisz ponownie definiować relacji między projektami.

Program Visual Studio jest wystarczająco inteligentny, aby nie polegać poważnie na ścieżkach projektów po ustanowieniu relacji odniesienia.

+1

Nie wiedziałem, że możesz mieć natywne projekty C++ mają odniesienia do innych natywnych projektów C++. Myślę, że prezentuje ładniejszy interfejs do opisu zależności niż okno dialogowe "Project dependencies ..." (jedyną wadą jest to, że musisz otworzyć je oddzielnie dla każdego projektu, ale jest to bardzo drobna kwestia). –

+0

@Rob: powinieneś przenieść tutaj akceptowaną odpowiedź. –

+1

+1: Odniesienia do innych projektów w ramach rozwiązania są również łatwiejsze w kontroli wersji, gdy są niewielkie zmiany w pliku .vcproj, a nie duże zmiany w pliku .sln. – quamrana

1

"Referencje" to rzecz .NET i nie dotyczą natywnego C++; różnią się od projektów zależnych. Projekt zależny w rozwiązaniu to projekt, który musi zostać zbudowany przed (lub po uzaleŜnieniu od tego, w jaki sposób zaleŜy) od innego projektu.

Odwołanie jest złożeniem zawierającym typy używane w projekcie. Analogiczną rzeczą w natywnym projekcie C++ mogą być pliki włączeń używane przez projekt i pliki .lib, które są połączone (natywny projekt C++ "pochłania" te elementy, nawet jeśli nie są one wbudowane w inny etap rozwiązania) .

+4

-1 Odniesienia DO stosują się do natywnego języka C++ i zachowują się tak samo, jak w zarządzanej wersji. Wymusza "zależność" od projektu (najpierw będzie zawsze budować projekty referencyjne) i doda dane wyjściowe projektu do łącznika. Oznacza to, że nie musisz bawić się ścieżkami biblioteki i nazwami podczas łączenia. –

1

Kiedyś w VS2008, że zależność projektu od biblioteki statycznej automatycznie spowoduje, że właściwa konfiguracja (Debug | Release) zostanie połączona. Wygląda na to, że VS2010 utracił tę zdolność wraz z przejściem do msbuild. Westchnienie.

+0

To nie jest stracone, możesz zmienić te opcje w oknach właściwości po kliknięciu odnośnika w Visual Studio 2015 – codekiddy