【问题标题】:CI cannot build .NET project, fails with: "Couldn't find a valid ICU package installed on the system..."CI 无法构建 .NET 项目,失败并显示:“找不到在系统上安装的有效 ICU 包...”
【发布时间】:2019-09-27 19:45:17
【问题描述】:

我正在努力让 Jenkins 构建我们的旧版 .NET 2.1 应用程序,作为简化 kubernetes 部署的一部分

因此,我创建了一个基于 jenkins/jnlp-slave:latest-jdk11 docker 镜像 (https://github.com/jenkinsci/docker-jnlp-slave) 的自定义 Jenkins 代理,该镜像又基于 Debian 9,并使用官方 .NET Core 进行了扩展(从https://dotnet.microsoft.com/download/dotnet-core/2.1 ,Debian 更新不适用于我们的防火墙),对于琐碎的项目,它运行良好。

现在我尝试使用一个真正的遗留应用程序,该应用程序在从命令行运行命令时构建良好,但是当 Jenkins 尝试运行 dotnet restore -v n 时,构建立即失败:

+ dotnet restore -v n
11:11:29  FailFast:
11:11:29  Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.
11:11:29  
11:11:29     at System.Environment.FailFast(System.String)
11:11:29     at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()
11:11:29     at System.Globalization.GlobalizationMode..cctor()
11:11:29     at System.Globalization.CultureData.CreateCultureWithInvariantData()
11:11:29     at System.Globalization.CultureData.get_Invariant()
11:11:29     at System.Globalization.CultureInfo..cctor()
11:11:29     at System.StringComparer..cctor()
11:11:29     at System.AppDomain.InitializeCompatibilityFlags()
11:11:29     at System.AppDomain.Setup(System.Object)
11:11:29  Aborted (core dumped)

我对 .NET 不是很有经验,我可能在设置环境时错过了某个步骤。应用程序需要在“da-DK”语言环境中运行。

我了解缺少某些部分。这应该如何解决?我对项目特定的快速解决方案和长期代理特定的解决方案都感兴趣。

【问题讨论】:

标签: c# jenkins .net-core debian


【解决方案1】:

在下载页面找到https://docs.microsoft.com/da-dk/dotnet/core/tools/dotnet-install-script,并结合安装脚本的输出看到“需要的依赖项”链接后,我发现根本原因是缺少库依赖项,解决方法是将它们安装在Docker 文件。

# Needed dependencies...
RUN apt install -y libunwind8 libicu57

【讨论】:

  • 已经安装了 libunwind8 和 libicu66,但我仍然收到此错误。
猜你喜欢
  • 2022-07-28
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 2013-04-17
  • 1970-01-01
  • 2018-04-03
  • 2015-09-19
  • 1970-01-01
相关资源
最近更新 更多