Debugowanie paczki NuGet-owej - najprostszy sposób.

Debugowanie paczki NuGet-owej - najprostszy sposób.
RO
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Warszawa
  • Postów:75
0

Hej aktualnie zastanawiam się jak z moich projektów stworzyć nugetowe paczki które ja i moi koledzy w pracy moglibyśmy debugować.

W chwili obecnej wrzucam zwykła paczkę(.nupkg) do folderu sieciowego który dodany jest jako źródło nugetów do VS. Chciałem podobnie zrobić paczkę (.symbols.nupkg).
Tak zrobiłem i wydawało mi się że wszystko działa dopóki nie chciałem sprawdzić jak to działa u innego programisty na komputerze i okazało się ze u kolegi nie działa. Widać u mnie korzystało z kodu źródłowego projektu z którego robiłem nugeta.

Prosiłbym o pomoc jak mogę zrobić żeby wszystko działało jak powinno i żebym nie musiał przechowywać danych na zewnętrznym serwerze - poza firmą


Poszukiwanie narzędzia do tworzenia instalatora
Aventus
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
1

Zdefiniuj co rozumiesz przez "nie działa". U Twojego kolegi nie widzi klas które powinny być w tej paczce czy kod zachowuje się inaczej niż powinien? Jak generujesz paczki? Próbowałeś korzystać z opcji projektu w VS aby generowało paczki przy budowaniu projektu? Jesteś pewny że paczka którą wrzuciłeś nie jest stara? Czy kolega już wcześniej instalował paczkę z tą wersją, a teraz chce używać nowszą (ale z tą samą wersją)? Pamiętaj że NuGet cachuje paczki lokalnie więc jeśli kolega miał paczkę 1.2.0 a Ty wrzuciłeś nowszą 1.2.0 (czego robić nie powinieneś) to jeśli kolega nie usunął starej 1.2.0 z lokalnego cachu NuGet to będzie korzystał właśnie ze starej wersji.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
RO
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Warszawa
  • Postów:75
0

@Aventus

"Nie działa" - rozumiem jako prosi o wskazanie pliku .cs z kodem na komputerze kolegi.

Projekt jest typu Standard 2.0 paczki generuje za pomocą Publish, przy czym w projekcie podałem wpisy do generowanie (.symbols.nupkg).

Paczka na pewno jest z dobrą wersją bo chciałem dopiero rozpocząć pracę z nugetami (od razu z debugowaniem), a projekt u kolegi był tworzony na potrzeby testu.


Poszukiwanie narzędzia do tworzenia instalatora
Aventus
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
1

Musisz parę rzeczy poustawiać żeby można było to debugować, tutaj jest to objaśnione: https://www.google.com/amp/s/geeklearning.io/how-to-debug-a-net-core-nuget-package/amp/


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
RO
Jak chodzi o tą stronę to jest opisane jak korzystać z publicznych hostów pakietów wraz serwerami symboli. Natomiast mnie interesuje własne najprostsze rozwiązanie. Chyba że czegoś nie zrozumiałem.
Aventus
@Robotyka: to nie ma znaczenia że w przykładzie jest użyty serwer z symbolami. U Ciebie "serwerem" jest folder sieciowy. Twój kolega musi w VS skonfigurować kilka ustawień, szczególnie “Require source files to exactly match the original version”.
RO
Hej wydaje mi się że wszystko robię ok a i tak nie działa - chyba debugowanie bez serwera symboli nie jest możliwe
Aventus
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
0

@Robotyka:

Hej wydaje mi się że wszystko robię ok a i tak nie działa - chyba debugowanie bez serwera symboli nie jest możliwe

Symbole możesz załadować ręcznie w trakcie debugowania. Nie potrzebny jest do tego serwer: https://docs.microsoft.com/en-us/visualstudio/debugger/specify-symbol-dot-pdb-and-source-files-in-the-visual-studio-debugger?view=vs-2019

Jest jeszcze inna opcja. Skompiluj swój kod, daj koledze DLL (z plikami pdb), niech odinstaluje paczkę NuGet i doda referencje do Twojego DLL.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
VA
  • Rejestracja:ponad 7 lat
  • Ostatnio:18 dni
2

Przede wszystkim to najlepiej byłoby dobrze napisać porządne testy do tych paczek po to żeby nie było potrzeby ich debugowania przez każdego deva w zespole

RO
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Warszawa
  • Postów:75
0

Jeśli dobrze rozumiem to do debugowania poza biblioteką i plikiem symboli potrzeba jest jeszcze kodu źródłowego i tu pojawia się pytanie jak to wszystko połączyć żeby wystarczyło wrzucić nuget wraz z symbolami (i kodem źródłowym który jest w paczce .symbols.nupkg) wszystko działało.


Poszukiwanie narzędzia do tworzenia instalatora
kzkzg
  • Rejestracja:ponad 8 lat
  • Ostatnio:3 minuty
  • Postów:926
0

Dokładnie tak jak w linku powyżej, robisz dotnet pack z tymi parametrami. U mnie działa.


Keep calm and blame frontend.
Tell your cat I said pspsps.
RO
A jakie jest położenie plików z kodem źródłowym jak debugujesz (gdzie one są zapisane)?
kzkzg
Pytasz o nugeta czy surowy kod źródłowy? Oba są u mnie na dysku, ale zdaje się ze potrzebujesz tylko nugeta budowanego z --include-symbols --include-source
RO
Pytam o kod źródłowy w czasie debugowania nugeta
kzkzg
No mam go na dysku, ale mogloby go tam nie być.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.