Obecnie pakuję kompilacje wydania z Nuget dla oficjalnych kompilacji do nuget.org, ale pakuję kompilacje debugowania z Nuget, aby źródło symboli wypychało do symbolsource.org.
EDYCJA: (Jon Skeet, z pewnym odchyleniem od rozwoju Noda Time)
NuGet obsługuje teraz wypychanie zarówno do galerii NuGet, jak i do symbolsource.org (lub podobnych serwerów), zgodnie z dokumentacją . Niestety istnieją tutaj dwa sprzeczne wymagania:
- Kiedy po prostu używasz biblioteki bez potrzeby debugowania, naprawdę potrzebujesz kompilacji wydania. W końcu do tego służą kompilacje wydań.
- Podczas debugowania w bibliotece w celach diagnostycznych naprawdę potrzebujesz kompilacji debugowania z wyłączonymi wszystkimi odpowiednimi optymalizacjami. W końcu do tego służą kompilacje debugowania.
Byłoby dobrze, ale NuGet nie (o ile wiem) nie pozwala na publikowanie zarówno wersji wydania, jak i kompilacji debugowania w użyteczny sposób, w tym samym pakiecie.
Mamy więc do wyboru:
- Roześlij wszystkim kompilacje debugowania (jak pokazano na przykładzie w dokumentacji) i żyj z dowolnymi rozmiarami i wynikami wydajności.
- Rozpowszechnij kompilacje wydania wszystkim i korzystaj z nieco ograniczonego środowiska debugowania.
- Wybierz naprawdę skomplikowaną politykę dystrybucji, potencjalnie zapewniającą oddzielne wydania i pakiety do debugowania.
Pierwsze dwie naprawdę sprowadzają się do efektu różnic między kompilacjami debugowania i wydania ... chociaż warto zauważyć, że istnieje również duża różnica między chęcią wejścia do kodu biblioteki, ponieważ chcesz sprawdzić pewne zachowanie, a chęcią aby debugować kod biblioteki, ponieważ uważasz, że znalazłeś błąd. W drugim przypadku prawdopodobnie lepiej jest pobrać kod biblioteki jako rozwiązanie Visual Studio i debugować w ten sposób, więc nie zwracam zbytniej uwagi na tę sytuację.
Moją pokusą jest pozostanie przy kompilacjach wydania, oczekując, że stosunkowo niewiele osób będzie musiało debugować, a optymalizacje w kompilacji wydania nie będą miały większego wpływu na tych, którzy to robią . (Kompilator JIT i tak wykonuje większość optymalizacji).
Czy są więc inne opcje, których nie rozważaliśmy? Czy są inne względy, które przechylają szalę? Czy wypychanie pakietów NuGet do SymbolSource jest na tyle nowe, że „najlepsze rozwiązanie” naprawdę nie zostało ustanowione?
nuget pack ... -Symbol
i wysyłam wygenerowane pakiety ...