.NET Standard 2.0项目System.Runtime程序集加载失败求助
解决.NET Standard 2.0类库System.Runtime加载失败问题
先修正核心配置错误
你把.NET Standard类库的<OutputType>设成了Exe,这是基础错误——.NET Standard是跨平台API规范,只能作为类库被其他项目引用,不能直接当可执行程序运行。先把这行从.csproj里删除:
<OutputType>Exe</OutputType>
修复NuGet包版本冲突
你的包版本搭配完全不兼容.NET Standard 2.0:
- Serilog 4.0.0及配套扩展库(如8.0.0版本的Extensions)已放弃支持.NET Standard 2.0,必须降级到兼容版本
- EF Core 2.1.0版本过旧,和高版本包易产生依赖矛盾,建议升级到2.2.6(.NET Standard 2.0支持的最高稳定版)
整理后的兼容版.csproj示例:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.6" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.6" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="RestSharp" Version="106.15.0" /> <PackageReference Include="Serilog" Version="2.12.0" /> <PackageReference Include="Serilog.Extensions.Logging" Version="3.1.0" /> <PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" /> <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" /> </ItemGroup> </Project>
清理并重建项目
按以下步骤操作:
- 右键项目 → 清理
- 手动删除项目文件夹内的
bin和obj目录 - 右键项目 → 重建
正确测试类库
你需要单独创建一个控制台项目(可选.NET Framework 4.7.2或.NET Core 3.1+),将你的.NET Standard类库引用到该项目中,通过控制台项目运行测试——类库本身无法直接运行。
额外提醒
.NET Standard只是API规范,没有独立运行时,因此永远不能设置为Exe输出类型。你选择.NET Standard 2.0兼容Framework和Core的思路是正确的,但要确保所有NuGet包版本都支持该目标框架,避免盲目使用最新版本(很多新包已不再兼容旧规范)。
内容的提问来源于stack exchange,提问作者Ranel
相关产品推荐
相关产品推荐

