Dela via


Ange en NuGet-pakettyp

Paket kan markeras med ytterligare en pakettyp för att indikera dess avsedda användning.

Kända pakettyper

  • Dependency typpaket lägger till bygg- eller körningstillgångar i bibliotek och program och kan installeras i valfri projekttyp (förutsatt att de är kompatibla).

  • DotnetTool typpaket är .NET-verktyg som kan installeras av dotnet CLI.

  • MSBuildSdk typpaket är MSBuild-projekt-SDK:er som förenklar användningen av programutvecklingspaket.

  • Template typpaket tillhandahåller anpassade mallar som kan användas för att skapa filer eller projekt som en app, tjänst, ett verktyg eller ett klassbibliotek.

  • McpServer typpaket innehåller MCP-servrar. Den här pakettypen åtföljs alltid av DotnetTool pakettypen eftersom en lokal MCP-server distribueras som ett .NET-verktyg. Information om MCP-servern och NuGet finns i MCP-servrar i NuGet-paket.

Paket som inte har markerats med en typ, inklusive alla paket som skapats med tidigare versioner av NuGet, är standardtypen Dependency .

Note

Stöd för pakettyper har lagts till i NuGet 3.5. Om du inte behöver en anpassad pakettyp är det bäst att inte uttryckligen ange pakettypen. Som standard använder NuGet typen Dependency när ingen typ har angetts.

Anpassade pakettyper

Du kan markera ditt paket med en eller flera anpassade pakettyper om dess användning inte passar de kända pakettyperna.

Anta till exempel att appens Contoso kunder kan installera tillägg. Appen kan kräva att tilläggsförfattare använder den anpassade pakettypen ContosoExtension för att identifiera sina paket som lämpliga tillägg som följer de nödvändiga konventionerna.

Warning

Ett paket med en anpassad pakettyp kan inte installeras av Visual Studio eller nuget.exe. Mer information finns i NuGet/Home#10468 .

Pakettyper kan anges i projektfilen (.csproj):

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

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

</Project>

Paket med flera avsedda användningsområden kan markeras med flera pakettyper med avgränsare ; :

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

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

</Project>

Pakettyper kan versionshanteras med en , avgränsare mellan pakettypen och dess Version sträng:

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

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

</Project>

Formatet för en pakettypssträng är exakt som ett paket-ID. En pakettyp är alltså en skiftlägeskänslig sträng som matchar det reguljära uttrycket ^\w+([_.-]\w+)*$ med minst ett tecken och högst 100 tecken.

Om det anges är pakettypsversionen en Version sträng. Pakettypens version är valfri och standardvärdet är 0.0.