无法加载文件或程序集“Microsoft.Extensions.Configuration.Abstractions,版本=3.0.0.0

问题描述

我正在将我的 .NET 标准 2.0 类库应用程序迁移到 .NET 核心 3.0,我想在其中从类库启动 Web API 服务器,其中类库应用程序通过可执行文件启动。

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

  <PropertyGroup Label="Globals">
    <SccProjectName>SAK</SccProjectName>
    <SccProvider>SAK</SccProvider>
    <SccAuxPath>SAK</SccAuxPath>
    <ScclocalPath>SAK</ScclocalPath>
    <AppendTargetFrameworkToOutputPath>true</AppendTargetFrameworkToOutputPath>
  </PropertyGroup>

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <copyLocalLockFileAssemblies>true</copyLocalLockFileAssemblies>
  </PropertyGroup>

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
  
  <ItemGroup>
    <packagereference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" />
    <packagereference Include="RestSharp" Version="106.6.10" />
  </ItemGroup>
</Project>

当使用可执行文件启动类库应用程序时,它会抛出如下错误

创建类型实例 “MySampleDll”失败:无法加载 文件或程序集 'Microsoft.Extensions.Configuration.Abstractions,版本=3.0.0.0,文化=中性,PublicKeyToken=adb9793829ddae60'。 系统找不到指定的文件

当我从 nuget 包下载 Microsoft.Extensions.Configuration.Abstractions 并手动将库保存在输出目录中时。它抛出新错误,说找不到 Microsoft.AspNetCore 3.0.0。 请帮助我我做错了什么。

List of SDKS installed

解决方法

去掉 Microsoft.AspNetCore.App,不再需要它,如 Microsoft documentation 中所述。

另外,请考虑升级到 .NET Core 3.1,这是一个 LTS 版本。 .NET 核心 3.0 has already reached end of life and is no longer supported