Administración de dependencias de paquetes en aplicaciones .NET

En este artículo se explica cómo agregar y quitar dependencias de paquetes modificando el archivo del proyecto o el empleo de la CLI.

Elemento <PackageReference>

El archivo del proyecto <PackageReference> tiene la estructura siguiente:

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" />

El atributo Include especifica el identificador del paquete que se va a agregar al proyecto. El atributo Version especifica la versión que se va a obtener. Las versiones se especifican en función de las reglas de versión de NuGet.

Use condiciones para agregar una dependencia que solo está disponible en un destino específico, tal como se muestra en el ejemplo siguiente:

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" Condition="'$(TargetFramework)' == 'netcoreapp2.1'" />

En el ejemplo anterior, la dependencia solo será válida si la compilación sucede para ese destino dado. El elemento $(TargetFramework) de la condición es una propiedad de MSBuild que se está configurando en el proyecto. En las aplicaciones .NET más comunes, no es necesario hacer esto.

Agregar o quitar dependencias

Puede agregar y quitar dependencias editando el archivo del proyecto o mediante comandos de la CLI de .NET.

Edición del archivo del proyecto

Para agregar una dependencia, agregue un elemento <PackageReference> dentro de un elemento <ItemGroup>. Puede agregar a un elemento <ItemGroup> existente o crear uno.

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

  <PropertyGroup>
    ...
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.2" />
  </ItemGroup>

</Project>

Para quitar una dependencia, quite su elemento <PackageReference> del archivo del proyecto.

Uso de la CLI

Para agregar una dependencia, ejecute el comando dotnet add package, como se muestra en el ejemplo siguiente:

dotnet add package Microsoft.EntityFrameworkCore

Para quitar una dependencia, ejecute el comando dotnet remove package, como se muestra en el ejemplo siguiente:

dotnet remove package Microsoft.EntityFrameworkCore

Recomendaciones

  • No incluya entradas para la operación de restauración en el archivo .targets o .props de un paquete al que se hace referencia. Estas entradas pueden incluir elementos PackageReference, atributos ExcludeAssets, las fuentes de NuGet que se van a usar u otra configuración de NuGet. Los archivos .targets y .props de los paquetes no se usan hasta que se complete la restauración de NuGet. Todo lo necesario para la restauración debe estar en el archivo de proyecto o archivo .targets del propio proyecto, no en una dependencia de paquete.

  • Si quiere usar la API de ASP.NET en una aplicación de consola o biblioteca de clases, agregue un elemento FrameworkReference al archivo del proyecto:

    <FrameworkReference Include="Microsoft.AspNetCore.App" />

    Para obtener más información, consulte Uso del marco compartido de ASP.NET Core.

Consulte también