在Visual Studio 2019/2022运行应用时出现CoreCLR: DefaultDomain错误
问题详情
运行服务时控制台窗口闪一下就关闭,项目目标框架为.NET Core 2.1且已安装在本机(路径C:\Program Files\dotnet\shared\Microsoft.NETCore.App),但运行时错误显示系统加载了.NET 2.2.0版本的库:
'Kyc.Server.Service.Profile.exe' (CoreCLR: DefaultDomain): 已加载'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.0\System.Private.CoreLib.dll'。
在System.Private.CoreLib.dll中引发了'System.ArgumentException'异常。
程序'[25324] Kyc.Server.Service.Profile.exe'已退出,代码为2147516553 (0x80008089)。
解决步骤
- 强制指定运行时版本:编辑项目的
.csproj文件,在<PropertyGroup>节点中添加<RuntimeFrameworkVersion>,明确指定你安装的2.1具体版本:
<PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> <RuntimeFrameworkVersion>2.1.30</RuntimeFrameworkVersion> <!-- 替换为本地已安装的2.1版本号 --> </PropertyGroup>
- 检查全局SDK配置:如果解决方案下有
global.json文件,确保它指定的SDK版本与.NET Core 2.1兼容:
{ "sdk": { "version": "2.1.500" <!-- 使用匹配2.1运行时的SDK版本 --> } }
清理重建项目:在Visual Studio中依次执行「清理解决方案」→「重建解决方案」,同时手动删除项目目录下的
bin和obj文件夹,清除残留的旧编译文件。排查调试配置:右键项目→属性→调试,检查环境变量中是否有强制指向.NET 2.2的配置;勾选「启用本机代码调试」,可以让控制台窗口停留,方便查看完整错误信息。
修复.NET Core 2.1运行时:打开控制面板→程序和功能,找到“.NET Core 2.1.x Runtime”,选择「更改」后点击「修复」,确保运行时文件完整。
内容的提问来源于stack exchange,提问作者Sydney Nkosi

