You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
msquic.dll is no longer included in the Windows shared runtime #81447
There are only a handful of commits between those two builds. #80164 looks like the most suspicious of those changes @ViktorHofer, but I'm not sure that it's the cause.
I noticed this because @amcasey was trying to add a test to Http3TlsTests in the aspnetcore repo and noticed that the tests were being skipped on Windows 11.
Download version 8.0.0-alpha.1.23061.6 of the Microsoft.NETCore.App.Runtime.win-64/x86 nuget packages from https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json and notice that msquic.dll is inside the /runtimes/win-64/native/ directory of the nupkg. Then do the same for version 8.0.0-alpha.1.23061.11 (the next release in the feed) and notice that msuic.dll is no longer there.
Expected behavior
The windows shared runtime should include msquic.dll and QuicListener.IsSupported/QuicConnection.IsSupported should be true on Windows 11.
Actual behavior
The windows shared runtime does not include msquic.dll.
Regression?
Yes.
Known Workarounds
Copying msquic.dll from an older installation of the shared runtime.
changed the title [-]msquic.dll is no longer included in Microsoft.NETCore.App.Runtime.win-64/x86[/-][+]msquic.dll is no longer included in the Windows shared runtime[/+]on Jan 31, 2023
@cnmade please post comments in English -- I translated yours.
I don't understand your question. Why would Microsoft try to do bad things? Bugs and mishaps happen. The important thing is how teams react. I don't see any signs of anything malicious here.
Reacted by Shreyas Jejurkar, Stephen Halter and Viktor Hofer
none of our tests caught this because we skip them if QuicListener.IsSupported or QuicConnection.IsSupported is false which is the case when msquic.dll is not on the path on Windows.
Anyone knows if it is possible to make this check more resilient? If the DLL is expected, but not found, would it be possible to show a failure message?
From my chat with Tomas and Mana, the problem, summarized, was:
the UseQuicTransportPackage should control what sources we use, not the inclusion in general. That is decided by TargetOS
So removing the UseQuickTransportPackage condition from the ItemGroup at the top should fix that. Mana took care of the fix, along with a test, and sent the PRs to main and the preview branch.
Was this change to add the TargetOS condition in src/libraries/System.Net.Quic/src/System.Net.Quic.csproj intentional?
Yes that change was intentional as previously when building libraries for all configurations on non Windows, the msquic.dll was added to the shared framework, even though it shouldn't be there which caused the shared framework pack step to fail.
Big thanks to @ManickaP and @carlossanlop for finding the issue so quickly and fixing it. When we did clean-up the binplacing logic, I mistakenly forgot to change the condition from the ItemGroup and as builds passed, nothing indicated that msquic.dll wasn't binplaced anymore. It's great that we now have a test that asserts the desired behavior. Again sorry for the inconvenience. (I'm still out but wanted to share this message)
Activity
[-]msquic.dll is no longer included in Microsoft.NETCore.App.Runtime.win-64/x86[/-][+]msquic.dll is no longer included in the Windows shared runtime[/+]adityamandaleeka commentedon Feb 1, 2023
Was this change to add the
TargetOScondition in src/libraries/System.Net.Quic/src/System.Net.Quic.csproj intentional?2ca7cf7#diff-1d4ce147edca0ce81f312b96fce76ac52eb02eb6d04e660817e3b47230edc794
cc @ViktorHofer
samsp-msft commentedon Feb 1, 2023
@karelz @wfurt
ManickaP commentedon Feb 1, 2023
Based on this report, we should add test(s) that are not conditioned to
IsSupportedproperty but check if it is true on supported OSes.karelz commentedon Feb 1, 2023
This is high-pri blocker for .NET 8.0 Preview 1. We need to fix it ASAP @ManickaP @wfurt cc @ViktorHofer
karelz commentedon Feb 1, 2023
@cnmade please post comments in English -- I translated yours.
I don't understand your question. Why would Microsoft try to do bad things? Bugs and mishaps happen. The important thing is how teams react. I don't see any signs of anything malicious here.
ShreyasJejurkar commentedon Feb 1, 2023
Don't we have tests to validate what the installer splits on the box!? Like the required set of files, their correct location, and version!?
carlossanlop commentedon Feb 1, 2023
Thanks for tracking down the range of commits, @halter73. I am very confident that the culprit was 2ca7cf7#diff-8fa5dbb3a7a00a71e725ad8798c2a6ef22fc3bf770c62651e2e74ca02655aaa8 since it modified many infra keywords, and changes many conditions in the Quic csproj. I'm trying to understand the changes.
Anyone knows if it is possible to make this check more resilient? If the DLL is expected, but not found, would it be possible to show a failure message?
carlossanlop commentedon Feb 1, 2023
The Quic csproj used to have these conditions:
and
So the DLL locations are not exactly the same anymore. Talking to @ManickaP and @wfurt about this.
carlossanlop commentedon Feb 1, 2023
From my chat with Tomas and Mana, the problem, summarized, was:
So removing the
UseQuickTransportPackagecondition from theItemGroupat the top should fix that. Mana took care of the fix, along with a test, and sent the PRs to main and the preview branch.ViktorHofer commentedon Feb 2, 2023
Yes that change was intentional as previously when building libraries for all configurations on non Windows, the msquic.dll was added to the shared framework, even though it shouldn't be there which caused the shared framework pack step to fail.
Big thanks to @ManickaP and @carlossanlop for finding the issue so quickly and fixing it. When we did clean-up the binplacing logic, I mistakenly forgot to change the condition from the ItemGroup and as builds passed, nothing indicated that msquic.dll wasn't binplaced anymore. It's great that we now have a test that asserts the desired behavior. Again sorry for the inconvenience. (I'm still out but wanted to share this message)
karelz commentedon Feb 21, 2023
Fixed in 8.0 (main) in PR #81490 and in 8.0 Preview1 in PR #81492.