Festlegen eines NuGet-Pakettyps

Pakete können mit einem oder mehreren anderen Pakettypen markiert werden, um die beabsichtigte Verwendung anzuzeigen.

Bekannte Pakettypen

  • Pakete mit Typ Dependency fügen Bibliotheken und Anwendungen Build- oder Laufzeitressourcen hinzu und können in jedem Projekttyp installiert werden, wenn sie kompatibel sind.

  • Pakete vom Typ DotnetTool sind .NET-Tools, die von der dotnet CLI installiert werden können.

  • MSBuildSdk Typpakete sind MSBuild-Projekt-SDKs, die die Verwendung von Softwareentwicklungskits vereinfachen.

  • Pakete vom Typ Template stellen benutzerdefinierten Vorlagen bereit, mit denen sich Dateien oder Projekte wie Apps, Dienste, Tools oder Klassenbibliotheken erstellen lassen.

Pakete ohne Typ, einschließlich aller mit früheren Versionen von NuGet erstellten Pakete, haben standardmäßig den Typ Dependency.

Hinweis

Unterstützung für Pakettypen wurde in NuGet 3.5 hinzugefügt. Wenn Sie keinen benutzerdefinierten Pakettyp benötigen, sollten Sie den Pakettyp nicht explizit festlegen. NuGet verwendet standardmäßig den Dependency-Typ, wenn kein Typ angegeben wird.

Benutzerdefinierte Pakettypen

Sie können Ihr Paket mit einem oder mehrere benutzerdefinierte Pakettypen markieren, wenn seine Verwendung nicht den bekannten Pakettypen entspricht.

Stellen Sie sich beispielsweise vor, dass Kunden der Contoso-App Erweiterungen installieren können. Die App könnte von Erweiterungsautoren fordern, dass sie den benutzerdefinierten Pakettyp ContosoExtension verwenden, um ihre Pakete als geeignete Erweiterungen zu identifizieren, die den erforderlichen Konventionen entsprechen.

Warnung

Ein Paket mit einem benutzerdefinierten Pakettyp kann weder von Visual Studio noch von nuget.exe installiert werden. Weitere Informationen finden Sie unter NuGet/Home#10468.

Pakettypen können in der Projektdatei (.csproj) festgelegt werden:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    
    <PackageType>ContosoExtension</PackageType>
  </PropertyGroup>

</Project>

Pakete mit mehreren beabsichtigten Verwendungsarten können mithilfe des Trennzeichens ; mit mehreren Pakettypen markiert werden:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    
    <PackageType>PackageType1;PackageType2</PackageType>
  </PropertyGroup>

</Project>

Pakettypen können mithilfe des Trennzeichens , zwischen dem Pakettyp und seiner Version-Zeichenfolge mit einer Versionsangabe versehen werden:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    
    <PackageType>PackageType1, 1.0.0.0;PackageType2</PackageType>
  </PropertyGroup>

</Project>

Das Format einer Pakettypzeichenfolge entspricht genau dem einer Paket-ID. Das heißt, ein Pakettyp ist eine Zeichenfolge ohne Berücksichtigung der Groß-/Kleinschreibung, die dem regulären Ausdruck ^\w+([_.-]\w+)*$ entspricht, der mindestens ein Zeichen und höchstens 100 Zeichen enthält.

Falls angegeben, ist die Pakettypversion eine Version-Zeichenfolge. Die Pakettypversion ist optional und nimmt den Standardwert 0.0 an.