ASP.NET Core 3:如何在自定义库中引用3.0.0程序集?

18

我发现引用Microsoft.AspNetCore.App框架(也称为ASP.NET Core 3.0)的应用程序使用来自程序集Microsoft.AspNetCore.Mvc.Abstractions,Version=3.0.0.0的类型。

enter image description here

但我找不到与版本3.0.0相同的NuGet包。现在应该如何引用包?例如,如果我想覆盖ControlBase,并且在NuGet上没有这样的软件包版本,那么我应该如何引用Microsoft.AspNetCore.Mvc.Core,Version = 3.0.0.0程序集?

添加以下内容后:

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

我有另一种警告:

enter image description here

出现错误:

NETSDK1073: 未识别 FrameworkReference 'Microsoft.AspNetCore.App' Routines.AspNetCore C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets 263

卸载并重新加载应用程序无效。

在一个空的新项目中也会出现相同的问题:

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

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

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

编译

1>------ 重新生成全部开始: 项目: ClassLibrary1,配置: Debug Any CPU ------

1>C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(263,5): error NETSDK1073: 未识别 FrameworkReference 'Microsoft.AspNetCore.App' 1>生成项目“ClassLibrary1.csproj”失败。 ========== 重新生成全部: 成功 0 个,失败 1 个,跳过 0 个 ==========

1个回答

19

你需要在你的csproj文件中添加一个FrameworkReference

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

有关更多详细信息,请参见从ASP.NET Core 2.2迁移到3.0


2
谢谢...为什么我不能引用唯一的程序集?我想了解架构师的动机。 - Roman Pokrovskij
而且至少在我的情况下它不起作用。TargetFramework>netstandard2.1</TargetFramework>已检查,没有其他库。即使在新的空C#库中(当然是netstandard2.1),也是如此。 - Roman Pokrovskij
2
可能是因为asp.net core 3需要.net core 3,而不是netstandard。当我将目标框架更改为netcoreapp3.0,并添加FrameworkReference时,一切正常。 - ESG
他们使用了 netstandard2.1 子集(在 Microsoft.AspNetCore.Mvc.Abstractions 中可能依赖于平台),然后将其专门发布到 netcoreapp3.0。对于微软架构师的任性来说,没有任何限制。 - Roman Pokrovskij

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接