Jeżeli chcecie się pobawić ASP.NET vNext to trzeba wiedzieć o jednym. Jeżeli w VS mamy zdefiniowane dodatkowe źródła nuget to domyślnie kpm (K Package Manager) będzie także przeczesywał je w poszukiwaniu paczek.

Czyli za każdym razem jak odpalicie komendę kpm restore czy kpm install, nie tylko zostanie przeczesany standardowy nuget, ale także wszystkie dodatkowe źródła jakie macie ustawione w VS. Ogólnie nie jest to złe, no chyba, że macie tak jak ja – jedno źródło dostępne jedynie kiedy jestem podpięty pod VPN. To powoduje, że kpm nie jest wstanie podłączyć się pod dany nuget server i kończy cały restore/install błędem.

Aktualnie nie ma możliwości określenia w VS czy dane źródło ma być dostępne dla kpm, ale są trzy opcje obejścia tego problemu:

  1. Wywalić wadliwe źródło z VS (wiem, wiem, ale to jest opcja nie? ;))
  2. Odpalić kpm restore | install z parametrem: --ignore-failed-sources
  3. Stworzyć plik nuget.config lokalnie (VS trzyma w %AppData%\Nuget\, choć jak nie ma VS to i my tam możemy nasz nuget.config wrzucić)

Tak jak opcja z ignorowaniem jest prosta, to tak czy siak dalej będziemy odpytywać te źródła. Więc to będzie trwało. To co możemy zrobić by to pominąć to zdefiniować plik nuget.config (w katalogu w którym mamy pliki, lub w nadrzędnym – nadrzędny na pewno działa).

Jego konstrukcja nie jest już taka prosta jak project.json ale da się z tym żyć i można to zapamiętać ;)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <!-- it use MASTER feed, not VNext https://www.myget.org/F/aspnetvnext/api/v2/ -->
        <add key="AspNetVNext" value="https://www.myget.org/F/aspnetmaster/api/v2/’" />
        <add key="NuGet.org" value="https://nuget.org/api/v2/" />
    </packageSources>
</configuration>

1 KOMENTARZ

Comments are closed.