Co się stanie po zainstalowaniu pakietu NuGet?

Mówiąc po prostu, różne narzędzia NuGet zwykle tworzą odwołanie do pakietu w pliku projektu lub packages.config, a następnie wykonują przywracanie pakietu, co skutecznie instaluje pakiet. Wyjątek to nuget install, który rozszerza tylko pakiet do packages folderu i nie modyfikuje żadnych innych plików.

Ogólny proces wygląda następująco:

  1. (Wszystkie narzędzia z wyjątkiem nuget.exe) Zarejestruj identyfikator pakietu i wersję w pliku projektu lub packages.config.

    Jeśli narzędzie instalacyjne jest programem Visual Studio lub interfejsem wiersza polecenia dotnet, narzędzie najpierw próbuje zainstalować pakiet. Jeśli jest on niezgodny, pakiet nie zostanie dodany do pliku projektu lub packages.config.

  2. Uzyskaj pakiet:

    • Sprawdź, czy pakiet (według dokładnego identyfikatora i numeru wersji) jest już zainstalowany w folderze global-packages zgodnie z opisem w temacie Zarządzanie pakietami globalnymi i folderami pamięci podręcznej.

    • Jeśli pakiet nie znajduje się w folderze global-packages, spróbuj pobrać go ze źródeł wymienionych w plikach konfiguracji. W tym momencie są stosowane konfiguracje mapowania źródła pakietów. W przypadku źródeł online spróbuj najpierw pobrać pakiet z pamięci podręcznej HTTP, chyba że -NoHttpCache zostanie określony z nuget.exe poleceniami lub --no-http-cache jest określony za pomocą dotnet restorepolecenia . (Program Visual Studio i dotnet add package zawsze używaj pamięci podręcznej). Jeśli pakiet jest używany z pamięci podręcznej, w danych wyjściowych pojawi się komunikat "CACHE". Pamięć podręczna ma czas wygaśnięcia 30 minut.

    • Jeśli pakiet został określony przy użyciu wersji przestawnej lub bez minimalnej wersji, program NuGet skontaktuje się ze wszystkimi źródłami, aby ustalić najlepsze dopasowanie. Przykład: 1.*, (, 2.0.0].

    • Jeśli pakiet nie znajduje się w pamięci podręcznej HTTP, spróbuj pobrać go ze źródeł wymienionych w konfiguracji. Jeśli pakiet zostanie pobrany, w danych wyjściowych pojawią się polecenia "GET" i "OK". Narzędzie NuGet rejestruje ruch HTTP w normalnej szczegółowości.

    • Jeśli nie można pomyślnie pobrać pakietu z żadnych źródeł, instalacja zakończy się niepowodzeniem w tym momencie z powodu błędu takiego jak NU1103. Należy pamiętać, że błędy z nuget.exe poleceń pokazują tylko ostatnie sprawdzone źródło, ale oznacza, że pakiet nie był dostępny z żadnego źródła.

    Podczas uzyskiwania pakietu kolejność źródeł w konfiguracji NuGet może mieć zastosowanie:

    • Narzędzie NuGet sprawdza źródła lokalnego folderu i udziałów sieciowych przed sprawdzeniem źródeł HTTP.
  3. Zapisz kopię pakietu i innych informacji w folderze http-cache zgodnie z opisem w temacie Zarządzanie pakietami globalnymi i folderami pamięci podręcznej.

  4. Po pobraniu zainstaluj pakiet w folderze global-packages dla użytkownika. NuGet tworzy podfolder dla każdego identyfikatora pakietu, a następnie tworzy podfoldery dla każdej zainstalowanej wersji pakietu.

  5. Pakiet NuGet instaluje zależności pakietów zgodnie z potrzebami. Ten proces może aktualizować wersje pakietów w procesie zgodnie z opisem w temacie Rozwiązywanie zależności.

  6. Zaktualizuj inne pliki i foldery projektu:

    • W przypadku projektów korzystających z funkcji PackageReference zaktualizuj graf zależności pakietu przechowywany w programie obj/project.assets.json. Zawartość pakietu nie jest kopiowana do żadnego folderu projektu.
    • Zaktualizuj app.config i/lub web.config jeśli pakiet używa przekształceń pliku źródłowego i konfiguracji.
  7. (Tylko program Visual Studio) Wyświetl plik readme pakietu, jeśli jest dostępny, w oknie programu Visual Studio.

Korzystaj z produktywnego kodowania za pomocą pakietów NuGet!