Administración de dependencias en aplicaciones de .NET

En este artículo se explica cómo agregar y quitar dependencias de paquete, proyecto y ensamblado.

Adición y eliminación de dependencias de paquetes

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

Uso de la CLI

Para agregar una dependencia, ejecute el comando para la versión del dotnet package SDK:

dotnet package add Microsoft.EntityFrameworkCore

Para eliminar una dependencia, ejecute el comando dotnet package correspondiente a su versión del SDK:

dotnet package remove Microsoft.EntityFrameworkCore

Edición del archivo del proyecto

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

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

  <PropertyGroup>
    ...
  </PropertyGroup>

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

</Project>

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

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

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

La dependencia del ejemplo anterior solo será válida si la compilación se está efectuando para ese objetivo determinado. El elemento $(TargetFramework) de la condición es una propiedad de MSBuild que se está configurando en el proyecto. Para las aplicaciones .NET más comunes, no es necesario hacerlo.

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

Para obtener más información sobre el PackageReference elemento, consulte la referencia de MSBuild para proyectos de SDK de .NET.

Agregar y quitar referencias de proyecto

Use una referencia de proyecto a proyecto cuando el proyecto dependa de otro proyecto. Para agregar y quitar referencias de proyecto, edite el archivo de proyecto o use la CLI.

Uso de la CLI

Para agregar una referencia de proyecto, ejecute el comando dotnet reference correspondiente a su versión del SDK.

dotnet reference add ../MyLibrary/MyLibrary.csproj

Para quitar una referencia de proyecto, ejecute el siguiente comando para la versión del SDK:

dotnet reference remove ../MyLibrary/MyLibrary.csproj

Edición del archivo del proyecto

El <ProjectReference> elemento de archivo del proyecto identifica la ruta de acceso al proyecto al que se hace referencia. Para agregar una referencia de proyecto, agregue un <ProjectReference> elemento dentro de un <ItemGroup> elemento. Puede agregar a un existente <ItemGroup> o crear uno nuevo.

<ItemGroup>
  <ProjectReference Include="../MyLibrary/MyLibrary.csproj" />
</ItemGroup>

Para quitar una referencia de proyecto, quite el <ProjectReference> elemento del archivo del proyecto.

Para obtener más información sobre el ProjectReference elemento, vea Elementos comunes del proyecto de MSBuild.

Agregar y quitar referencias de ensamblado

Puede agregar y quitar referencias de ensamblado a través del archivo de proyecto. La CLI de .NET no proporciona comandos para agregar o quitar referencias de ensamblado.

Para hacer referencia a un ensamblado de .NET que no forma parte de un proyecto o paquete, agregue un <Reference> elemento al archivo del proyecto. Use el <HintPath> elemento para especificar la ruta de acceso relativa o absoluta al ensamblado:

<ItemGroup>
  <Reference Include="MyAssembly">
    <HintPath>lib/MyAssembly.dll</HintPath>
  </Reference>
</ItemGroup>

Para quitar una referencia de ensamblado, quite su <Reference> elemento del archivo de proyecto.

Para obtener más información sobre el Reference elemento, vea Elementos comunes del proyecto de MSBuild.

Consejos

  • 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 PackageReference elementos, ExcludeAssets atributos, 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 desea usar ASP.NET API 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