Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel gilt für: ✔️ .NET Core 3.1 SDK und höher
Name
dotnet package add
– Fügt einen Paketverweis in einer Projektdatei hinzu oder aktualisiert sie.
Hinweis
Wenn Sie .NET 9 SDK oder früher verwenden, verwenden Sie stattdessen das Formular "verb first" (dotnet add package
). Das Formular "Nomen first" wurde in .NET 10 eingeführt. Weitere Informationen finden Sie unter "Konsistentere Befehlsreihenfolge".
Zusammenfassung
dotnet package add <PACKAGE_NAME>
[-f|--framework <FRAMEWORK>] [--interactive] [--project <PROJECT>]
[-n|--no-restore] [--package-directory <PACKAGE_DIRECTORY>]
[--prerelease] [-s|--source <SOURCE>] [-v|--version <VERSION>]
dotnet package add -h|--help
BESCHREIBUNG
Der dotnet package add
Befehl bietet eine bequeme Option zum Hinzufügen oder Aktualisieren eines Paketverweises in einer Projektdatei. Wenn Sie den Befehl ausführen, gibt es eine Kompatibilitätsprüfung, um sicherzustellen, dass das Paket mit den Frameworks im Projekt kompatibel ist. Wenn die Prüfung bestanden und das Paket nicht in der Projektdatei referenziert wird, wird der Projektdatei ein <PackageReference>
Element hinzugefügt. Wenn die Überprüfung erfolgreich ist und auf das Paket bereits in der Projektdatei verwiesen wird, wird das <PackageReference>
Element auf die neueste kompatible Version aktualisiert. Nachdem die Projektdatei aktualisiert wurde, wird die dotnet-Wiederherstellung ausgeführt.
Beispielsweise erzeugt das Hinzufügen Microsoft.EntityFrameworkCore
zu ToDo.csproj eine Ausgabe ähnlich wie im folgenden Beispiel:
Determining projects to restore...
Writing C:\Users\username\AppData\Local\Temp\tmp24A8.tmp
info : Adding PackageReference for package 'Microsoft.EntityFrameworkCore' into project 'C:\ToDo\ToDo.csproj'.
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/index.json
info : GET https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/0.0.1-alpha/3.1.3.json
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/3.1.4/7.0.0-preview.2.22153.1.json
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/7.0.0-preview.3.22175.1/7.0.0-preview.3.22175.1.json
info : NotFound https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json 257ms
info : Restoring packages for C:\ToDo\ToDo.csproj...
info : Package 'Microsoft.EntityFrameworkCore' is compatible with all the specified frameworks in project 'C:\ToDo\ToDo.csproj'.
info : PackageReference for package 'Microsoft.EntityFrameworkCore' version '6.0.4' added to file 'C:\ToDo\ToDo.csproj'.
info : Writing assets file to disk. Path: C:\ToDo\obj\project.assets.json
log : Restored C:\ToDo\ToDo.csproj (in 171 ms).
Die Datei "ToDo.csproj " enthält nun ein <PackageReference>
Element für das referenzierte Paket.
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
Wenn das Projekt in die zentrale Paketverwaltung (Central Package Management, CPM) eingebunden ist, wird das <PackageVersion>
Element im Directory.Packages.props file
Element hinzugefügt/aktualisiert, und das <PackageReference>
Element wird der Projektdatei hinzugefügt.
Die folgenden Szenarien werden derzeit unterstützt. In diesen Beispielen wird davon ausgegangen, dass die neueste Version von Microsoft.EntityFrameworkCore
6.0.4 lautet. Weitere Szenarien im Zusammenhang mit CPM sind in dieser Designspezifikation dokumentiert.
Szenario 1: <PackageReference>
Ist in der Projektdatei nicht vorhanden, <PackageVersion>
das Element ist nicht im Directory.Packages.props file
Element vorhanden, und das Versionsargument wird nicht von der Befehlszeile übergeben.
CLI-Befehl, der ausgeführt wird: dotnet package add Microsoft.EntityFrameworkCore --project ToDo.csproj
Das <PackageVersion>
Element wird der Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
Das <PackageReference>
Element wird der Projektdatei hinzugefügt.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Szenario 2: <PackageReference>
In der Projektdatei ist kein Element vorhandenDirectory.Packages.props file
, <PackageVersion>
und das Versionsargument wird von der Befehlszeile übergeben.
CLI-Befehl, der ausgeführt wird: dotnet package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj
Das <PackageVersion>
Element wird der Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
Das <PackageReference>
Element wird der Projektdatei hinzugefügt.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Szenario 3: <PackageReference>
In der Projektdatei ist kein Element vorhandenDirectory.Packages.props file
, <PackageVersion>
und das Versionsargument wird nicht von der Befehlszeile übergeben.
CLI-Befehl, der ausgeführt wird: dotnet package add Microsoft.EntityFrameworkCore --project ToDo.csproj
Das <PackageVersion>
Element wird der Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
Das <PackageReference>
Element wird der Projektdatei hinzugefügt.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Szenario 4: <PackageReference>
In der Projektdatei ist kein Element vorhandenDirectory.Packages.props file
, <PackageVersion>
und das Versionsargument wird von der Befehlszeile übergeben.
CLI-Befehl, der ausgeführt wird: dotnet package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj
Das <PackageVersion>
Element wird der Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
Das <PackageReference>
Element wird der Projektdatei hinzugefügt.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Implizite Wiederherstellung
Sie müssen dotnet restore
nicht ausführen, da der Befehl implizit von allen Befehlen ausgeführt wird, die eine Wiederherstellung erfordern. Zu diesen zählen z. B. dotnet new
, dotnet build
, dotnet run
, dotnet test
, dotnet publish
und dotnet pack
. Verwenden Sie die Option --no-restore
, um die implizite Wiederherstellung zu deaktivieren.
In bestimmten Fällen eignet sich der dotnet restore
-Befehl dennoch. Dies ist etwa bei Szenarios der Fall, in denen die explizite Wiederherstellung sinnvoll ist. Beispiele hierfür sind Continuous Integration-Builds in Azure DevOps Services oder Buildsysteme, die den Zeitpunkt für die Wiederherstellung explizit steuern müssen.
Informationen zum Verwalten von NuGet-Feeds finden Sie in der dotnet restore
Dokumentation.
Argumente
PROJECT
Gibt die Projektdatei an. Wenn nicht angegeben, durchsucht der Befehl das aktuelle Verzeichnis nach einem Verzeichnis.
PACKAGE_NAME
Der hinzuzufügende Paketverweis.
Optionen
-f|--framework <FRAMEWORK>
Fügt nur einen Paketverweis hinzu, wenn es auf ein bestimmtes Framework ausgerichtet ist.
-?|-h|--help
Gibt eine Beschreibung zur Verwendung des Befehls aus.
--interactive
Ermöglicht dem Befehl, anzuhalten und auf Benutzereingaben oder Aktionen zu warten. Beispielsweise, um die Authentifizierung abzuschließen.
-n|--no-restore
Fügt einen Paketverweis hinzu, ohne eine Wiederherstellungsvorschau und Kompatibilitätsprüfung durchzuführen.
--package-directory <PACKAGE_DIRECTORY>
Das Verzeichnis, in dem die Pakete wiederhergestellt werden sollen. Der Standardspeicherort für die Paketwiederherstellung befindet sich
%userprofile%\.nuget\packages
unter Windows und~/.nuget/packages
unter macOS und Linux. Weitere Informationen finden Sie unter Verwalten der globalen Pakete, des Caches und der temporären Ordner in NuGet.--prerelease
Ermöglicht die Installation von Vorabversionen von Paketen. Verfügbar seit .NET Core 5 SDK
-s|--source <SOURCE>
Der URI der NuGet-Paketquelle, die während des Wiederherstellungsvorgangs verwendet werden soll.
-v|--version <VERSION>
Version des Pakets. Siehe NuGet-Paketversionsverwaltung.
Beispiele
Hinzufügen eines
Microsoft.EntityFrameworkCore
NuGet-Pakets zu einem Projekt:dotnet package add Microsoft.EntityFrameworkCore
Hinzufügen einer bestimmten Version eines Pakets zu einem Projekt:
dotnet package add Microsoft.Azure.DocumentDB.Core -v 1.0.0 --project ToDo.csproj
Fügen Sie ein Paket mit einer bestimmten NuGet-Quelle hinzu:
dotnet package add Microsoft.AspNetCore.StaticFiles -s https://dotnet.myget.org/F/dotnet-core/api/v3/index.json