Mam uruchomiony prywatny pakiet pakietów NuGet, którego używam do udostępniania pewnych funkcji i rozszerzeń między moimi projektami. Działa świetnie w Visual Studio, ale ostatnio rozpocząłem konfigurowanie ciągłej integracji dla jednego z moich projektów w Visual Studio Online i wydaje się, że VSO nie może zobaczyć mojego prywatnego kanału.Dodawanie prywatnych przesyłek pakietów Nuget do Visual Studio Online
Używam nowej metody przywracania pakietów - tej, która wymaga ustawienia opcji "Zezwalaj na pobieranie brakujących pakietów" w opcjach VS. Jestem nie używając opcji "Włącz pakiet NuGet Restore" w menu kontekstowym rozwiązania, ponieważ jest to w rzeczywistości the old way of doing it i powoduje problemy w innych miejscach.
Nie robię też niczego, co modyfikuje moje pliki projektu; Używam niestandardowej definicji kompilacji (używając elementów XAML Workflow), aby móc ją zastosować do dowolnego z moich projektów, wybierając ją z menu rozwijanego "Szablon procesu kompilacji" w edytorze definicji wersji. Robię to w ten sposób, ponieważ dodaję wiele innych kroków, w tym niektóre skrypty post-build, aby ułatwić automatyczne wdrażanie na serwerze hostingowym; niektóre z tych kroków są trochę skomplikowane, więc utrzymanie ich w procesie kompilacji oznacza, że muszę je skonfigurować tylko raz.
Więc, bez użycia starego rozwiązania menu kontekstowego, które umieszcza nuget.exe w folderze rozwiązania, i bez zadzierania z samym projektem, jak mogę uzyskać kompilację VSO, aby przywrócić pakiety z mojego prywatnego kanału?
Szablon przepływu pracy budowania ma działanie "NuGetRestore", które może przyjmować argumenty linii poleceń. Dodałem następujące:
"-source https://www.nuget.org/api/v2/ http://www.example.com/nuget"
, ale to nie ma znaczenia. To działanie ma również pole do "określania rozwiązań, które wymagają przywrócenia pakietów NuGet", i właśnie ustawiłem to na zmienną ProjectsToBuild
, która jest ustawiana podczas definiowania kompilacji. Nie dostaję żadnych błędów z nuget.exe (przynajmniej żaden nie widzę), ale kompilacja się nie powiedzie. Co ciekawe, mówi, że odpowiednie przestrzenie nazw nie istnieją, a nie, że odniesienia nie mogą zostać rozwiązane. Jakieś pomysły?
Zauważyłem również na własną składnię poleceń myliłem. nuget restore -source "https://www.nuget.org/api/v2;https://www.myget.org/F/nuget". Twoje źródła muszą być oddzielone średnikiem. Ten i mój przykład konfiguracji powinien rozwiązać ten problem. https://docs.nuget.org/consume/command-line-reference#restore-command – Jared