Freigeben über


Was geschieht, wenn ein NuGet-Paket installiert wird?

Einfach gesagt, die verschiedenen NuGet-Tools erstellen in der Regel einen Verweis auf ein Paket in der Projektdatei oder packages.configführen dann eine Paketwiederherstellung durch, die das Paket effektiv installiert. Die Ausnahme besteht nuget installdarin, dass das Paket nur in einen packages Ordner erweitert und keine anderen Dateien geändert werden.

Der allgemeine Prozess lautet wie folgt:

  1. (Alle Tools außer nuget.exe) Notieren Sie den Paketbezeichner und die Paketversion in der Projektdatei oder packages.config.

    Wenn das Installationstool Visual Studio oder die dotnet CLI ist, versucht das Tool zunächst, das Paket zu installieren. Wenn es nicht kompatibel ist, wird das Paket nicht der Projektdatei oder packages.config hinzugefügt.

  2. Erwerben Sie das Paket:

    • Überprüfen Sie, ob das Paket (nach exakter Identifer und Versionsnummer) bereits im Ordner "Globale Pakete " installiert ist, wie unter "Verwalten der globalen Pakete und Cacheordner" beschrieben.

    • Wenn sich das Paket nicht im Ordner "Globale Pakete" befindet , versuchen Sie, es aus den in den Konfigurationsdateien aufgeführten Quellen abzurufen. Zu diesem Zeitpunkt werden Paketquellzuordnungskonfigurationen angewendet. Versuchen Sie für Onlinequellen zuerst, das Paket aus dem HTTP-Cache abzurufen, es sei denn -NoHttpCache , es wird mit nuget.exe Befehlen angegeben oder --no-http-cache mit dotnet restore. (Visual Studio und dotnet add package immer den Cache verwenden.) Wenn ein Paket aus dem Cache verwendet wird, wird "CACHE" in der Ausgabe angezeigt. Der Cache hat eine Ablaufzeit von 30 Minuten.

    • Wenn das Paket mit einer unverankerten Version oder ohne Mindestversion angegeben wurde, kontaktiert NuGet alle Quellen, um die beste Übereinstimmung zu ermitteln. Beispiel: 1.*, (, 2.0.0].

    • Wenn sich das Paket nicht im HTTP-Cache befindet, versuchen Sie, es aus den in der Konfiguration aufgeführten Quellen herunterzuladen. Wenn ein Paket heruntergeladen wird, werden "GET" und "OK" in der Ausgabe angezeigt. NuGet protokolliert HTTP-Verkehr bei normaler Verbalität.

    • Wenn das Paket nicht erfolgreich aus quellen abgerufen werden kann, schlägt die Installation an diesem Punkt mit einem Fehler wie NU1103 fehl. Beachten Sie, dass Fehler, die von nuget.exe-Befehlen stammen, nur die zuletzt überprüfte Quelle anzeigen. Dabei impliziert dies, dass das Paket aus keiner Quelle verfügbar war.

    Beim Abrufen des Pakets kann die Reihenfolge der Quellen in der NuGet-Konfiguration gelten:

    • NuGet überprüft lokale Ordner- und Netzwerkfreigaben von Quellen, bevor HTTP-Quellen überprüft werden.
  3. Speichern Sie eine Kopie des Pakets und anderer Informationen im Ordner "http-cache ", wie unter "Verwalten der globalen Pakete und Cacheordner" beschrieben.

  4. Wenn das Paket heruntergeladen wird, installieren Sie das Paket im Ordner "Globale Pakete pro Benutzer". NuGet erstellt einen Unterordner für jeden Paketbezeichner und erstellt dann Unterordner für jede installierte Version des Pakets.

  5. NuGet installiert Paketabhängigkeiten nach Bedarf. Dieser Prozess kann Paketversionen im Prozess aktualisieren, wie in der Abhängigkeitsauflösung beschrieben.

  6. Aktualisieren anderer Projektdateien und Ordner:

    • Aktualisieren Sie für Projekte, die PackageReference verwenden, das Paketabhängigkeitsdiagramm, das in obj/project.assets.json gespeichert ist. Paketinhalte selbst werden nicht in einen Projektordner kopiert.
    • Aktualisieren app.config und/oder web.config wenn das Paket Quell- und Konfigurationsdateitransformationen verwendet.
  7. (Nur Visual Studio) Zeigen Sie die Infodatei des Pakets, falls verfügbar, in einem Visual Studio-Fenster an.

Genießen Sie Ihre produktive Codierung mit NuGet-Paketen!