背景:最近项目往CentOS 7上迁移部署,发现在正式服务器部署时发现一个问题,如图:
解决:根据提示,确实是系统内少相关包;那么问题来了,ICU库是干啥的,问一下度娘:
ICU(International Component for Unicode/Unicode国际化组件) 是 Unicode 支持、软件国际化、全球化的一个成熟的、广泛应用的库,是一个由 IBM 赞助、支持和使用的,基于"IBM公共许可证",用于支持软件国际化的开源项目。
好了,百度了我大概知道了,.Net 5程序部署在CentOS中肯定是因为一些库因为不国际化出错。问了同事,在项目文件中加一句就好了,先上解决方法:
"Microsoft.NET.Sdk"> -
-
-
"System.Globalization.Invariant" Value="true"/> -
-
拓展:
全球化不变模式(.NET Core 2.0 中的新功能)使您能够消除应用程序对全球化数据和全球化行为的依赖。如果您更关心减少依赖关系和分发大小而不是全球化功能或全球化正确性,则此模式是一种可选功能,可提供更大的灵活性。
在不变模式下运行的缺点是应用程序将获得较差的全球化支持。仅向了解全球化及其缺失的影响的开发人员推荐此新选项。
详细介绍: