dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.42k stars 4.76k forks source link

DocComment XML not shipping in Microsoft.NETCore.App.Ref 9.0.100-rc1 #106825

Closed JoeRobich closed 2 months ago

JoeRobich commented 3 months ago

This breaks hover support in the VSCode C# extension.

Expected to see .XML files for each of the libraries like we shipped with 9.0.0-preview.7.

Image

Actual see no .XML files.

Image

dotnet-policy-service[bot] commented 3 months ago

Tagging subscribers to this area: @dotnet/area-infrastructure-libraries See info in area-owners.md if you want to be subscribed.

carlossanlop commented 3 months ago

Thanks for reporting. We're aware of this. We just got that fixed with https://github.com/dotnet/runtime/pull/106179

The fix will go into RC1.

Note that there are also many docs that we haven't updated yet, which will get start showing up on RC2.

ericstj commented 2 months ago

@carlossanlop I spot checked https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet9/NuGet/Microsoft.NETCore.App.Ref/overview/9.0.0-rc.1.24421.1 And https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet9/NuGet/Microsoft.NETCore.App.Ref/overview/9.0.0-rc.2.24423.10

DOC XML is still missing. Can you double check that there's not something else broken here?

ericstj commented 2 months ago

I had a look: https://github.com/dotnet/runtime/blob/5026865050d0535cacda3826505111d08c9acdb2/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Ref.sfxproj#L20

Is trying to grab the files from MicrosoftNetCoreAppRefPackRefDir which is artifacts\bin\microsoft.netcore.app.ref\ref\net9.0

Inspecting this folder the problems files exist with the name System.*.intellisense-package.xml instead of System.*.xml. This was caused by https://github.com/dotnet/runtime/commit/9477e949594c9746b8d99389c4b5ef3065d51fa9. I'll see if I can make a fix.

ericstj commented 2 months ago

Yeah, that change regressed it. I think that was a bad change as the build process doesn't actually rename the file when copying: https://github.com/dotnet/msbuild/blob/7cf66090a764f0f239671e4877255efe7ba91155/src/Tasks/Microsoft.Common.CurrentVersion.targets#L398 https://github.com/dotnet/msbuild/blob/7cf66090a764f0f239671e4877255efe7ba91155/src/Tasks/Microsoft.Common.CurrentVersion.targets#L4942-L4944 The only reason it's not broken in the output directory is because the FinalDocFile gets set before we redefine DocFileItem.

The phase that copies to the shared framework gets the renamed items and doesn't ever give them the correct name. https://github.com/dotnet/runtime/blob/6e68f9233bb408e2862251858aabe87dd68532fd/src/libraries/sfx.proj#L63-L66

The simpler fix here is to use a sub-directory for the touched file instead of a different filename. #107334 does this.