Establecimiento de un tipo de paquete NuGet
Los paquetes se pueden marcar con uno más tipos de paquetes para indicar su uso previsto.
Tipos de paquete conocidos
Los paquetes de tipo
Dependency
agregan activos de tiempo de compilación o ejecución a las aplicaciones y bibliotecas, y se pueden instalar en cualquier tipo de proyecto (suponiendo que sean compatibles).Los paquetes de tipo
DotnetTool
son herramientas de .NET que se pueden instalar mediante la CLI de dotnet.Los paquetes de tipo
MSBuildSdk
son SDK de proyecto de MSBuild que simplifican el uso de kits de desarrollo de software.Los paquetes de tipo
Template
proporcionan plantillas personalizadas que se pueden usar para crear archivos o proyectos como una aplicación, un servicio, una herramienta o una biblioteca de clases.
Los paquetes que no se marcan con un tipo, incluidos todos los creados con versiones anteriores de NuGet, tienen el tipo Dependency
de forma predeterminada.
Nota:
Se agregó compatibilidad con tipos de paquete en NuGet 3.5.
Si no necesita un tipo de paquete personalizado, es mejor no establecer explícitamente el tipo de paquete.
El tipo predeterminado de NuGet es Dependency
cuando no se especifica ningún tipo.
Tipos de paquetes personalizados
Puede marcar el paquete con uno o varios tipos de paquetes personalizados si su uso no se ajusta a los tipos de paquete conocidos.
Por ejemplo, imagine que los clientes de la aplicación Contoso
pueden instalar extensiones. La aplicación podría requerir que los autores de extensiones usen el tipo de paquete personalizado ContosoExtension
para identificar sus paquetes como extensiones adecuadas que sigan las convenciones necesarias.
Advertencia
Visual Studio o nuget.exe no pueden instalar un paquete con un tipo de paquete personalizado. Consulte NuGet/Home#10468 para más información.
Los tipos de paquete se pueden establecer en el archivo de proyecto (.csproj
):
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<PackageType>ContosoExtension</PackageType>
</PropertyGroup>
</Project>
Los paquetes con varios usos previstos se pueden marcar con varios tipos de paquete mediante el delimitador ;
:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<PackageType>PackageType1;PackageType2</PackageType>
</PropertyGroup>
</Project>
Se pueden crear versiones de los tipos de paquete mediante un delimitador ,
entre el tipo de paquete y su cadena Version
:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<PackageType>PackageType1, 1.0.0.0;PackageType2</PackageType>
</PropertyGroup>
</Project>
El formato de una cadena de tipo paquete es exactamente igual al de un identificador de paquete. Es decir, un tipo de paquete es una cadena que no distingue mayúsculas de minúsculas que coincide con la expresión regular ^\w+([_.-]\w+)*$
que tiene al menos un carácter y como máximo 100 caracteres.
Si se proporciona, la versión del tipo de paquete es una cadena Version
. La versión del tipo de paquete es opcional y el valor predeterminado es 0.0
.