ASP.NET Core 3: Como referenciar assemblies 3.0.0 em bibliotecas personalizadas?

8

Vejo que os aplicativos que fazem referência à Microsoft.AspNetCore.Appestrutura (AKA ASP.NET Core 3.0) usam tipos do assemblyMicrosoft.AspNetCore.Mvc.Abstractions, Version=3.0.0.0,

insira a descrição da imagem aqui

Mas não consigo encontrar um pacote NuGet com a mesma versão 3.0.0. Como devo fazer referência aos pacotes agora? Por exemplo, se eu quiser substituir ControlBase, como devo referenciar o Microsoft.AspNetCore.Mvc.Core, Version=3.0.0.0assembly se não houver versões desse pacote no NuGet ?

Depois de adicionar o seguinte:

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

Eu tenho outro tipo de diminuição:

insira a descrição da imagem aqui

O que dá o erro:

NETSDK1073: O FrameworkReference 'Microsoft.AspNetCore.App' não foi reconhecido.

Descarregar e recarregar o aplicativo não ajuda.

O mesmo problema ocorre em um novo projeto vazio:

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

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

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

Compilação

1> ------ Reconstruir Tudo iniciado: Projeto: ClassLibrary1, Configuração: Depurar qualquer CPU ------

1> C: \ Arquivos de programas \ dotnet \ sdk \ 3.0.100 \ Sdks \ Microsoft.NET.Sdk \ destinos \ Microsoft.NET.Sdk.FrameworkReferenceResolution.targets (263,5): erro NETSDK1073: MicrosoftReport 'Framework.Aference' Microsoft.AspNetCore .App 'não foi reconhecido 1> Concluído o projeto de construção "ClassLibrary1.csproj" - FAILED. ========== Reconstruir tudo: 0 foi bem-sucedido, 1 falhou, 0 foi ignorado ==========

Roman Pokrovskij
fonte

Respostas:

6

Você precisa adicionar um FrameworkReferenceao seu csproj

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

Consulte Migrar do ASP.NET Core 2.2 para 3.0 para obter mais detalhes

ESG
fonte
1
Obrigado ... Por que não consigo referenciar a única montagem? Eu gostaria de entender a motivação dos arquitetos .... #
317 Roman Pokrovskij
E isso não funciona, pelo menos no meu caso. TargetFramework>netstandard2.1</TargetFramework>verificado, sem outras bibliotecas. Mesmo na nova biblioteca C # vazia (é netstandard2.1claro).
Roman Pokrovskij
1
Pode ser devido ao asp.net core 3 exigir o .net core 3, e não netstandard. Quando altero minha estrutura de destino para netcoreapp3.0e adiciono a FrameworkReference, tudo funciona.
ESG
eles escreveram no netstadard2.1subconjunto (o que pode depender da plataforma Microsoft.AspNetCore.Mvc.Abstractions?) e depois o publicaram exclusivamente netcoreapp3.0. não há limites para a vontade dos arquitetos do MS.
Roman Pokrovskij