dotnet / dotnet/sdk

dotnet test fails to load app-local ICU on linux

Open
#41,077 1 comment 3 reactions 0 assignees View on GitHub
untriaged
Dominant language
C#
Stars
3.2k
Forks
1.3k
PR merge metrics
PR metrics pending

Description

### Describe the bug
A project I am currently developing needs to be cross-platform and have localization support. Therefore I have opted to install the **Microsoft.ICU.ICU4C.Runtime** package version 72.1.0.3

Some tests regarding localization do need to use this app-local icu as well and on windows everything is working fine.
Our ci pipeline however is running on Debian 11 (amd64) and when trying to run `dotnet test -c Release MyProjectTests.csproj` it fails with the exception below.

This is logical, as the files in **bin/Release/net8.0/runtimes/linux-x64/native/** include the whole version number, so **libicudata.so.72.1.0.3** and if i rename the files to ***.so.72.1** everything works just fine.
The question remains, however, why the testplatform is looking for 72.1 and not the nuget-version number?

### To Reproduce
[Repo to reproduce](https://github.com/bernhard-R/dotnettesticubug)

### Exceptions (if any)
Testhost process for source(s) 'MyProjectTests.csproj/bin/Debug/net8.0/Seamtec.Control.Cloud.Tests.dll' exited with error: Process terminated. Failed to load app-local ICU: libicudata.so.72.1
at System.Environment.FailFast(System.String)
at System.Globalization.GlobalizationMode.LoadLibrary(System.String, Boolean)
at System.Globalization.GlobalizationMode.LoadAppLocalIcuCore(System.ReadOnlySpan`1, System.ReadOnlySpan`1)
at System.Globalization.GlobalizationMode.LoadAppLocalIcu(System.String)
at System.Globalization.GlobalizationMode+Settings..cctor()
at System.Globalization.CultureData.CreateCultureWithInvariantData()
at System.Globalization.CultureData.get_Invariant()
at System.Globalization.TextInfo..cctor()
at System.Diagnostics.Tracing.EventSource.GetGuid(System.Type)
at System.Diagnostics.Tracing.EventSource..ctor(System.Diagnostics.Tracing.EventSourceSettings, System.String[])
at Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing.TestPlatformEventSource..ctor()
at Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing.TestPlatformEventSource..cctor()
at Microsoft.VisualStudio.TestPlatform.CoreUtilities.Tracing.TestPlatformEventSource.get_Instance()
at Microsoft.VisualStudio.TestPlatform.TestHost.Program.Main(System.String[])
. Please check the diagnostic logs for more information.

Test Run Aborted.

### Further technical details
`dotnet --info`
.NET SDK:
Version: 8.0.300
Commit: 326f6e68b2
Workload version: 8.0.300-manifests.c1c70047
MSBuild version: 17.10.4+10fbfbf2e

Runtime Environment:
OS Name: debian
OS Version: 11
OS Platform: Linux
RID: linux-x64
Base Path: /usr/share/dotnet/sdk/8.0.300/

.NET workloads installed:
There are no installed workloads to display.

Host:
Version: 8.0.5
Architecture: x64
Commit: 087e15321b

.NET SDKs installed:
6.0.422 [/usr/share/dotnet/sdk]
8.0.300 [/usr/share/dotnet/sdk]

.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.30 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.30 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
None

Environment variables:
Not set

global.json file:
Not found

Learn more:
https://aka.ms/dotnet/info

Download .NET:
https://aka.ms/dotnet/download

os information:
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.