Różne sposoby, aby zainstalować pakiet NuGetDifferent ways to install a NuGet Package

Pakiety NuGet zostaną pobrane i zainstalowane przy użyciu dowolnej z metod w poniższej tabeli (zobacz narzędzia klienta programu NuGet zainstalować Jeśli nie masz, są już zainstalowane).NuGet packages are downloaded and installed using any of the methods in the following table (see Install NuGet client tools if you don't have these installed already). Pakiet może zostać pobrana z pamięci podręcznej zamiast pobrane.The package may be retrieved from a cache instead of downloaded.

MetodaMethod OpisDescription
DotNet.exe interfejsu wiersza poleceniadotnet.exe CLI
dotnet add package <package_name>
(Wszystkie platformy) Pobiera pakiet identyfikowane przez <nazwa_pakietu>rozwija jego zawartość do folderu w bieżącym katalogu i dodanie odwołania do pliku projektu.(All platforms) Retrieves the package identified by <package_name>, expands its contents into a folder in the current directory, and adds a reference to the project file. Ponadto umożliwia pobranie i zainstalowanie zależności.Also retrieves and installs dependencies.
Interfejs użytkownika Menedżera pakietów (Visual Studio)Package Manager UI (Visual Studio) (Windows i Mac) Udostępnia interfejs użytkownika, za pomocą którego można przeglądać, wybierz i zainstalować pakiety i ich zależności do projektu ze źródła określonego pakietu.(Windows and Mac) Provides a UI through which you can browse, select, and install packages and their dependencies into a project from a specified package source. Dodaje odwołania do pakietów zainstalowanych w pliku projektu.Adds references to installed packages to the project file.
Konsola Menedżera pakietów (Visual Studio)Package Manager Console (Visual Studio)
Install-Package <package_name>
(Tylko Windows) Pobiera i instaluje pakiet identyfikowane przez <nazwa_pakietu> z wybranego źródła do określonego projektu w rozwiązaniu, a następnie dodaje odwołanie do pliku projektu.(Windows only) Retrieves and installs the package identified by <package_name> from a selected source into a specified project in the solution, then adds a reference to the project file. Ponadto umożliwia pobranie i zainstalowanie zależności.Also retrieves and installs dependencies.
Interfejs wiersza polecenia nuget.exenuget.exe CLI
nuget install <package_name>
(Wszystkie platformy) Pobiera pakiet identyfikowane przez <nazwa_pakietu> i zwiększa jego zawartość do folderu w bieżącym katalogu; można także pobrać wszystkie pakiety wymienione w packages.config pliku.(All platforms) Retrieves the package identified by <package_name> and expands its contents into a folder in the current directory; can also retrieve all packages listed in a packages.config file. Również umożliwia pobranie i zainstalowanie zależności, ale nie wprowadza żadnych zmian w plikach projektu lub packages.config.Also retrieves and installs dependencies, but makes no changes to project files or packages.config.

Co się stanie, gdy pakiet jest zainstalowanyWhat happens when a package is installed

Był wyświetlany różne narzędzia NuGet zazwyczaj utworzyć odwołanie do pakietu w pliku projektu lub packages.config, następnie wykonać przywracania pakietów skuteczne pakiet zostanie zainstalowany.Simply said, the different NuGet tools typically create a reference to a package in the project file or packages.config, then perform a package restore, which effectively installs the package. Wyjątek stanowi nuget install, który rozwija tylko pakiet do packages folder i wszystkie inne pliki nie powoduje modyfikacji.The exception is nuget install, which only expands the package into a packages folder and does not modify any other files.

Ogólny proces jest następująca:The general process is as follows:

  1. (Wszystkie narzędzia, z wyjątkiem nuget.exe) Zapisz identyfikator pakietu i wersję do pliku projektu lub packages.config.(All tools except nuget.exe) Record the package identifer and version into the project file or packages.config.

  2. Pobieranie pakietu:Acquire the package:

    • Sprawdź, czy pakiet (przez dokładny identyfikator oraz numer wersji) jest już zainstalowany w globalnymi pakietami folderu zgodnie z opisem na Zarządzanie globalnymi pakietami i folderami pamięci podręcznej.Check if the package (by exact identifer and version number) is already installed in the global-packages folder as described on Managing the global packages and cache folders.

    • Jeśli pakiet nie znajduje się w globalnymi pakietami folderze próbują pobrać go ze źródeł wymienione na liście pliki konfiguracyjne.If the package is not in the global-packages folder, attempt to retrieve it from the sources listed listed in the configuration files. Dla źródeł online próbował najpierw pobrać pakiet z pamięci podręcznej, chyba że -NoCache jest określony za pomocą nuget.exe poleceń lub --no-cache jest określony za pomocą dotnet restore.For online sources, attempt first to retrieve the package from the cache unless -NoCache is specified with nuget.exe commands or --no-cache is specified with dotnet restore. (Visual Studio i dotnet add package zawsze używać pamięci podręcznej.) Jeśli pakiet jest używany z pamięci podręcznej, "Pamięć PODRĘCZNĄ" pojawia się w danych wyjściowych.(Visual Studio and dotnet add package always use the cache.) If a package is used from the cache, "CACHE" appears in the output. Pamięć podręczna zawiera 30-minutowy czas wygaśnięcia.The cache has an expiration time of 30 minutes.

    • Jeśli pakiet nie jest w pamięci podręcznej, próba go pobrać ze źródła wymienione w konfiguracji.If the package is not in the cache, attempt to download it from the sources listed in the configuration. Jeśli pakiet został pobrany, "GET" i "OK" są wyświetlane w danych wyjściowych.If a package is downloaded, "GET" and "OK" appear in the output.

    • Jeśli pakiet nie może pomyślnie uzyskana z dowolnymi źródłami, instalacja nie powiedzie się na tym etapie ze względu na błąd taki jak NU1103.If the package cannot be successfully acquired from any sources, installation fails at this point with an error such as NU1103. Uwaga tego błędy z nuget.exe Pokaż polecenia tylko ostatni źródło opcja jest zaznaczona, ale oznacza, że pakiet nie była dostępna z dowolnego źródła.Note that errors from nuget.exe commands show only the last source checked, but implies that the package wasn't available from any source.

    Podczas uzyskiwania pakietu, mogą mieć zastosowanie kolejność źródeł w konfiguracji NuGet:When acquiring the package, the order of sources in the NuGet configuration may apply:

    • W przypadku projektów przy użyciu formatu PackageReference NuGet sprawdza źródła lokalnego folderu i udziałów sieciowych przed sprawdzeniem źródła HTTP.For projects using the PackageReference format, NuGet checks sources local folder and network shares before checking HTTP sources.

    • Dla projektów przy użyciu packages.config zarządzania formatu NuGet używa kolejności źródeł w konfiguracji.For projects using the packages.config management format, NuGet uses the order of the sources in the configuration. Wyjątek stanowi operacje przywracania, w którym to przypadku porządkowania źródła jest ignorowany i NuGet korzysta z pakietu z dowolnego źródła odpowiada w pierwszej kolejności.An exception is restore operations, in which case source ordering is ignored and NuGet uses the package from whichever source responds first.

    • Ogólnie rzecz biorąc kolejność, w którym NuGet kontroli źródła nie jest szczególnie istotne, ponieważ dowolnego danego pakietu przy użyciu określonego identyfikatora oraz numer wersji jest dokładnie taka sama, niezależnie od źródła został znaleziony.In general, the order in which NuGet checks sources isn't particularly meaningful, because any given package with a specific identifier and version number is exactly the same on whatever source it's found.

  3. (Wszystkie narzędzia, z wyjątkiem nuget.exe) Zapisz kopię pakietu oraz inne informacje w pamięci podręcznej http folderu zgodnie z opisem na Zarządzanie globalnymi pakietami i folderami pamięci podręcznej.(All tools except nuget.exe) Save a copy of the package and other information in the http-cache folder as described on Managing the global packages and cache folders.

  4. Jeśli pobrane, należy zainstalować pakiet w poszczególnych użytkowników globalnymi pakietami folderu.If downloaded, install the package into the per-user global-packages folder. NuGet tworzy osobny podfolder dla każdego identyfikatora pakietu, a następnie tworzy oddzielne podfoldery dla każdej zainstalowanej wersji pakietu.NuGet creates a subfolder for each package identifier, then creates subfolders for each installed version of the package.

  5. Aktualizacja innych projektów, plików i folderów:Update other project files and folders:

    • W przypadku projektów przy użyciu funkcji PackageReference, zaktualizuj wykres zależności pakietu, które są przechowywane w obj/project.assets.json.For projects using PackageReference, update the package dependency graph stored in obj/project.assets.json. Zawartość pakietu, sami nie są kopiowane do dowolnego folderu projektu.Package contents themselves are not copied into any project folder.
    • Dla projektów przy użyciu packages.config, skopiuj te części pakietu rozwinięty, które odpowiadają platforma docelowa projektu do projektu packages folderu.For projects using packages.config, copy those parts of the expanded package that match the project's target framework into project's packages folder. (Korzystając z nuget install, cały pakiet rozszerzonej jest kopiowana, ponieważ nuget.exe nie analizuje pliki projektu, aby zidentyfikować platformę docelową.)(When using nuget install, the entire expanded package is copied because nuget.exe does not examine project files to identify the target framework.)
    • Aktualizacja app.config i/lub web.config Jeśli korzysta z pakietu źródła i konfiguracji pliku przekształcenia.Update app.config and/or web.config if the package uses source and config file transformations.
  6. Jeśli zainstalować wszystkie zależności niskiego poziomu nie już istnieje w projekcie.Install any down-level dependencies if not already present in the project. Ten proces może aktualizować wersje pakietów w procesie, zgodnie z opisem w rozpoznawania zależności.This process might update package versions in the process, as described in Dependency Resolution.

  7. (Tylko visual Studio) Wyświetl plik readme pakietu, jeśli to możliwe, w oknie programu Visual Studio.(Visual Studio only) Display the package's readme file, if available, in a Visual Studio window.