Impostare un tipo di pacchetto NuGet

I pacchetti possono essere contrassegnati con uno più tipi di pacchetto per indicare l'uso previsto.

Tipi di pacchetto noti

  • I pacchetti di tipo Dependency aggiungono asset in fase di compilazione o di esecuzione ad applicazioni e librerie e possono essere installati in qualsiasi tipo di progetto, presupponendo che siano compatibili.

  • DotnetTool i pacchetti di tipo sono strumenti .NET che possono essere installati dall'interfaccia della riga di comando dotnet.

  • MSBuildSdk i pacchetti di tipo sono SDK di progetto MSBuild che semplificano l'uso di software development kit.

  • Template I pacchetti di tipo forniscono modelli personalizzati che possono essere usati per creare file o progetti come un'app, un servizio, uno strumento o una libreria di classi.

I pacchetti non contrassegnati con un tipo, inclusi tutti i pacchetti creati con versioni precedenti di NuGet, usano il tipo Dependency per impostazione predefinita.

Nota

Il supporto per i tipi di pacchetto è stato aggiunto in NuGet 3.5. Se non è necessario un tipo di pacchetto personalizzato, è consigliabile non impostare in modo esplicito il tipo di pacchetto. Per impostazione predefinita, NuGet viene impostato sul Dependency tipo quando non viene specificato alcun tipo.

Tipi di pacchetto personalizzati

È possibile contrassegnare il pacchetto con uno o più tipi di pacchetto personalizzati se l'uso non rientra nei tipi di pacchetto noti.

Si supponga, ad esempio, che i clienti dell'app Contoso possano installare le estensioni. L'app potrebbe richiedere agli autori di estensioni di usare il tipo di ContosoExtension pacchetto personalizzato per identificare i pacchetti come estensioni appropriate che seguono le convenzioni necessarie.

Avviso

Non è possibile installare un pacchetto con un tipo di pacchetto personalizzato da Visual Studio o da nuget.exe. Per altre informazioni, vedere NuGet/Home#10468 .

I tipi di pacchetto possono essere impostati nel file di progetto (.csproj):

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

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

</Project>

I pacchetti con più usi previsti possono essere contrassegnati con più tipi di pacchetto usando il ; delimitatore:

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

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

</Project>

I tipi di pacchetto possono essere versionati usando un , delimitatore tra il tipo di pacchetto e la relativa Version stringa:

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

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

</Project>

Il formato di una stringa del tipo di pacchetto è esattamente simile a un ID pacchetto. Ovvero, un tipo di pacchetto è una stringa senza distinzione tra maiuscole e minuscole corrispondente all'espressione ^\w+([_.-]\w+)*$ regolare con almeno un carattere e al massimo 100 caratteri.

Se specificato, la versione del tipo di pacchetto è una Version stringa. La versione del tipo di pacchetto è facoltativa e per impostazione predefinita è 0.0.