ASP.NET Core 3: ¿Cómo hacer referencia a ensamblados 3.0.0 en bibliotecas personalizadas?

8

Veo que las aplicaciones que hacen referencia al Microsoft.AspNetCore.Appmarco (AKA ASP.NET Core 3.0) usan tipos del ensambladoMicrosoft.AspNetCore.Mvc.Abstractions, Version=3.0.0.0,

ingrese la descripción de la imagen aquí

Pero no puedo encontrar un paquete NuGet con la misma versión 3.0.0. ¿Cómo debo hacer referencia a paquetes ahora? Por ejemplo, si quiero anular ControlBase, ¿cómo debo hacer referencia al Microsoft.AspNetCore.Mvc.Core, Version=3.0.0.0ensamblaje si no hay tales versiones de paquetes en NuGet ?

Después de agregar lo siguiente:

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

Tengo otro tipo de disminución:

ingrese la descripción de la imagen aquí

Lo que da el error:

NETSDK1073: No se reconoció el FrameworkReference 'Microsoft.AspNetCore.App' Routines.AspNetCore C: \ Archivos de programa \ dotnet \ sdk \ 3.0.100 \ Sdks \ Microsoft.NET.Sdk \ targets \ Microsoft.NET.Sdk.FrameworkReferenceResolution.targets 263

Descargar y volver a cargar la aplicación no ayuda.

El mismo problema ocurre en un nuevo proyecto vacío:

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

  <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
  </PropertyGroup>

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

Compilacion

1> ------ Reconstruir Todo iniciado: Proyecto: ClassLibrary1, Configuración: Depurar cualquier CPU ------

1> C: \ Archivos de programa \ dotnet \ sdk \ 3.0.100 \ Sdks \ Microsoft.NET.Sdk \ targets \ Microsoft.NET.Sdk.FrameworkReferenceResolution.targets (263,5): error NETSDK1073: The FrameworkReference 'Microsoft.AspNetCore .App 'no se reconoció 1> Proyecto de construcción terminado "ClassLibrary1.csproj" - FALLIDO. ========== Reconstruir todo: 0 exitoso, 1 fallido, 0 omitido ==========

Roman Pokrovskij
fuente

Respuestas:

6

Necesita agregar un FrameworkReferencea su csproj

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

Consulte Migrar de ASP.NET Core 2.2 a 3.0 para obtener más detalles.

ESG
fuente
1
Gracias ... ¿Por qué no puedo hacer referencia al único conjunto? Me gustaría entender la motivación de los arquitectos ...
Roman Pokrovskij
Y no funciona al menos en mi caso. TargetFramework>netstandard2.1</TargetFramework>marcado, no hay otras librerías. Incluso en la nueva biblioteca vacía de C # ( netstandard2.1por supuesto).
Roman Pokrovskij
1
Puede deberse a que asp.net core 3 requiere .net core 3, y no netstandard. Cuando cambio mi marco de destino a netcoreapp3.0, y agrego FrameworkReference, todo funciona.
ESG
escribieron en un netstadard2.1subconjunto (¿ en qué puede depender la plataforma Microsoft.AspNetCore.Mvc.Abstractions?) y luego lo publicaron exclusivamente netcoreapp3.0... no hay límites para la obstinación de los arquitectos de MS.
Roman Pokrovskij