sdk: donnet 3.1 seems broken on last openSUSE Tumbleweed

Describe the bug

After last OS update dotnet broken. It always show error:

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.

Perhaps, it cause icu was update from 70 version to 71 version. Maybe this is bug in icu package of openSUSE, but i don’t know why dotnet cant’t find icu, and how check that icu is broken. In OS, icu packages are installed. When i load to snapshot before update icu to 71, dotnet works.

To Reproduce

1 - install dotnet-sdk on last openSUSE Tumbleweed 2 - try use any dotnet commands

Exceptions (if any)

Process terminated. 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. at System.Environment.FailFast(System.String) at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode() at System.Globalization.GlobalizationMode…cctor() at System.Globalization.CultureData.CreateCultureWithInvariantData() at System.Globalization.CultureData.get_Invariant() at System.Globalization.CultureInfo…cctor() at System.String.ToUpperInvariant() at System.Diagnostics.Tracing.EventSource.GetGuid(System.Type) at System.Diagnostics.Tracing.EventSource…ctor(System.Diagnostics.Tracing.EventSourceSettings, System.String[]) at System.Diagnostics.Tracing.EventSource…ctor() at Microsoft.Build.Eventing.MSBuildEventSource…cctor() at Microsoft.Build.CommandLine.MSBuildApp.Execute(System.String[]) at Microsoft.Build.CommandLine.MSBuildApp.Main(System.String[])

Further technical details

  • Include the output of dotnet --info ~> dotnet --info Process terminated. 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. at System.Environment.FailFast(System.String) at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode() at System.Globalization.GlobalizationMode…cctor() at System.Globalization.CultureData.CreateCultureWithInvariantData() at System.Globalization.CultureData.get_Invariant() at System.Globalization.CultureInfo…cctor() at System.String.ToLowerInvariant() at Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment.GetArch() at Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment…cctor() at Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment.GetRuntimeIdentifier() at Microsoft.DotNet.Cli.MulticoreJitProfilePathCalculator.CalculateProfileRootPath() at Microsoft.DotNet.Cli.MulticoreJitActivator.StartCliProfileOptimization() at Microsoft.DotNet.Cli.MulticoreJitActivator.TryActivateMulticoreJit() at Microsoft.DotNet.Cli.Program.Main(System.String[]) fish: Job 1, ‘dotnet --info’ terminated by signal SIGABRT (Abort)

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 18 (10 by maintainers)

Most upvoted comments

@Gankov would setting the CLR_ICU_VERSION_OVERRIDE env variable to the version of ICU you are using before launching your app be an acceptable workaround? The format of the string in this variable is majorVer[.minorVer[.subVer]] (the brackets indicate optional parts).

Thanks for looking into it, it appears .NET Core 3.1 runtime is causing the issue and preventing .NET 6.0 builds that reference Microsoft.NET.Sdk.Functions.

I need .NET Core 3.1 runtime for both my project and also I use some other tools that depend on 3.1, for example Azure Storage Explorer.

I will be using CLR_ICU_VERSION_OVERRIDE=71.1 workaround until I can remove 3.1 runtime

Edit: The same solution has many projects, most are 6.0 but some are still on 3.1, that is what’s causing the issue.

@Gankov would setting the CLR_ICU_VERSION_OVERRIDE env variable to the version of ICU you are using before launching your app be an acceptable workaround? The format of the string in this variable is majorVer[.minorVer[.subVer]] (the brackets indicate optional parts).

Yes, it works for me. Thanks.