-
Notifications
You must be signed in to change notification settings - Fork 217
[release/3.1] Remove duplicate entries from dotnet --info #9186
[release/3.1] Remove duplicate entries from dotnet --info #9186
Conversation
Can go into November if we rebuild. Otherwise, December. |
There is a host test failure here we should look at. |
|
Interesting part of that log is Which is from core-setup/src/corehost/common/pal.windows.cpp Lines 328 to 334 in 9ab9a9b
The test that's failing is core-setup/src/test/HostActivation.Tests/MultilevelSharedFxLookup.cs Lines 274 to 284 in 9ab9a9b
Which sets
Which should have short-circuited the failing line here: core-setup/src/corehost/common/pal.windows.cpp Lines 304 to 308 in 9ab9a9b
Perhaps something is going wrong enabling Test-only behavior. @vitek-karas any ideas? |
I have a local repro of this, will debug when I have a chance. |
I may have spoken too soon. The local repro I see is a different failing test (MultipleHives) which is failing because dotnet.exe is being passed an empty assembly to run. core-setup/src/test/HostActivation.Tests/FrameworkResolution/FrameworkResolutionBase.cs Line 113 in 9ab9a9b
|
2e20516
to
3201788
Compare
We will be rebuilding for 3.1 so merging this. |
Backport of dotnet/runtime#60446
Tests not ported due to missing infrastructure
Customer Impact
Customers see duplicate entries in
dotnet --info
for all SDKs and all frameworks when running in the default install on Windows. Regression introduced in RC2. This isn't blocking but it looks pretty bad.Testing
Manually tested end-to-end to verify fix (shown below). Added automated regression test.
Risk
Very low. Leverages existing method in a new place.
Root cause
We are writing a trailing slash on
InstallLocation
and the host didn't remove this when considering paths (though it does for other paths). The result is that it considersC:\Program Files\dotnet
andC:\Program Files\dotnet\
to be separate paths, causing duplicates. Fixing this to avoid the trailing slash in the installer requires a custom action. The reason it worked before was because the installer was using hard-coded strings to write these values. We changed that in ARM64 work to calculate these directories. MSI insists on directories ending in a trailing slash.Result before:
After: