Mamy wiele bibliotek wewnętrznych, które chcielibyśmy udostępniać między projektami wewnątrz firmy. Oto niektóre z wymagań:
- źródła biblioteki są przechowywane w repozytoriach oddzielonych od projektów końcowych
- projekty końcowe obejmują biblioteki za pośrednictwem NuGet
- musi istnieć możliwość łatwego sprawdzenia kodu źródłowego dowolnej biblioteki podczas pracy nad projektem końcowym
Konfigurowanie naszego prywatnego repozytorium NuGet nie stanowi problemu, ale zarządzanie źródłami jest. Staramy się wystawiać źródła za pośrednictwem serwera źródłowego i to trochę działa, ale nie do końca: VS pobierze źródła podczas debugowania kodu zewnętrznego, ale nie podczas próby, aby przejść do definiowania / realizacji. Zasadniczo możesz przejść do kodu źródłowego tylko podczas debugowania, co nie jest nam dokładnie potrzebne.
Tak więc pytania są następujące:
- jakie istnieją sposoby zapewnienia dostępu do kodu źródłowego bibliotek wewnętrznych bez konieczności posiadania kodu w tym samym repozytorium / rozwiązaniu
- czy istnieje sposób na skonfigurowanie kombinacji Symbol server / NuGet, aby VS używał symboli do nawigacji, a nie tylko do debugowania?
Korzystanie z ReSharper / innych dodatków jest opcją.
c#
source-code
closed-source
nuget
Dyppl
źródło
źródło
Odpowiedzi:
To, co powinno działać, to po prostu sprawdzenie kodu źródłowego pakietu NuGet i otwarcie rozwiązania w osobnej instancji programu Visual Studio.
Visual Studio ma fajną sztuczkę przełączania między kodem w otwartych instancjach poprzez wypracowanie tego, do czego się odwołujesz. Pierwszy raz, kiedy mi się to zdarzyło, kiedy debugowałem, było objawieniem.
Głównym problemem, z jakim się stykasz, jest upewnienie się, że wypisany kod dla pakietu zależnego reprezentuje tę samą wersję, co odniesienie NuGet w głównym projekcie. Nie stanowi to problemu, jeśli będziesz przestrzegać zasad ciągłego budowania w oparciu o najnowszą wersję pakietu.
Inną zaletą tego podejścia jest to, że jeśli pakiet wymaga zmiany, możesz wprowadzić zmiany tam i teraz.
źródło
Może możesz użyć https://github.com/GitTools/GitLink . Dodaje link w pliku pdb wskazujący na repozytorium, dzięki czemu Visual Studio pobierze stamtąd kod źródłowy - a następnie wystarczy dołączyć plik pdb do pakietu nuspec i nie będzie potrzebował serwera źródłowego.
źródło
Nie jest to więc idealne rozwiązanie, ale wspominasz, że możesz opcjonalnie użyć Resharper; Dzięki dotPeek i resharper możesz przejść do demontażu oryginalnego kodu, tego używam w pracy, gdzie mamy podobną konfigurację do twojej.
Uważam kombinację serwera symboli, o którym wspomniałeś, i przeglądanie dezasemblacji zwykle wystarcza, aby dowiedzieć się, co się dzieje.
Mam nadzieję, że to pomaga.
Edycja: Po ponownym przeczytaniu pytania zdaję sobie sprawę, że specjalnie poprosiłeś o możliwość przeglądania kodu źródłowego, co nie jest prawdą. Niemniej jednak mam nadzieję, że komuś się przyda.
źródło