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
, atributosExcludeAssets
, 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.