我在 Ubuntu 20.04 上使用过 .net core 3.1 一段时间,但现在系统更新后,skd 似乎无法识别已安装的 libicu。我目前使用的是 dotnet 3.1.407。
dotnet run
错误消息:进程终止。无法找到系统上安装的有效 ICU 包. 如果希望在无全球化支持的情况下运行,请将配置标志 System.Globalization.Invariant 设置为 true。at System.Environment.FailFast(System.String) at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode() at System.Globalization.GlobalizationMode..cctor()
我确认它已经安装。
ii libicu66:amd64 66.1-2ubuntu2 amd64 International Components for Unicode
有趣的是,当直接运行应用程序测试时,它可以工作->dotnet bin/Debug/netcoreapp3.1/Test.dll
有一些建议将 Globalization.Invariant 设置为 true,
"configProperties": {
"System.Globalization.Invariant": true }
它可以工作但不适用于我的情况,因为这会阻止 EntityFramework 连接到 SQL 数据库-> Globalization.Invariant 不受支持。
dotnet info 输出:
NET Core SDK(反映任何 global.json):版本:3.1.407 提交:d3244d0e44
运行时环境:操作系统名称:ubuntu 操作系统版本:20.04 操作系统平台:Linux RID:ubuntu.20.04-x64 基本路径:/snap/dotnet-sdk/117/sdk/3.1.407/
主机(对支持有用):版本:3.1.13 提交:64df28ec4a
已安装的 .NET Core SDK:3.1.407 [/snap/dotnet-sdk/117/sdk]
已安装的 .NET Core 运行时:Microsoft.AspNetCore.App 3.1.13 [/snap/dotnet-sdk/117/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 3.1.13 [/snap/dotnet-sdk/117/shared/Microsoft.NETCore.App]
非常感谢任何解决此问题的提示。
答案1
最终发现是 .NET SDK 的 Snap 安装出了问题。我卸载了 snap 包,并按照此页面上的说明直接安装了 .net 3.1 SDK 二进制文件微软 .net 安装。向下滚动到“手动安装”一章。下载二进制文件并安装 SDK。我的程序再次构建并运行良好。