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?
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.ReadOnlySpan1<Char>, System.ReadOnlySpan1)
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.
I have the same problem when building to a container with the alpine distro. My project doesn't contain any tests, I don't think it's linked with that. Thanks for reporting!
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
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)
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.
1<Char>, System.ReadOnlySpan
1Test 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+10fbfbf2eRuntime 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/"