-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some OOB assemblies are not copying intellisense extracted from docs package #82214
Comments
Tagging subscribers to this area: @dotnet/area-infrastructure-libraries Issue DetailsSome of our assemblies are not showing intellisense in VS. With our recent intellisense changes, I checked if we were overwriting the built intellisense xml with the one from the docs nuget package, and noticed it's not. I think we should, if the This problem seems to be somewhat related to having the Here's a list I collected:
Related to #79030
|
Looking at this a bit more with a binlog, it seems the property runtime/eng/intellisense.targets Lines 41 to 43 in 2ba2396
This might be naive to ask, but I wonder if that condition could be extended to check if either |
Correct. IsNetCoreAppSrc is true if an assembly is part of the shared framework which isn't true for OOB assemblies. So that's the correct behavior.
We discussed that in your PR. We don't need xml files from OOB assemblies to be copied into the xml doc directory. That directory is expected to only contain shared framework xml doc files. |
What we discussed it in my PR was the placement of xml files of OOB packages in the I think we could add logic that swaps the built xml file of OOB packages with the one from dotnet-api-docs. I assume we would have to do this somewhere in the |
What you describe is what this target already does: runtime/eng/intellisense.targets Lines 30 to 39 in 65f5ad0
How does Visual Studio fetch intellisense documentation from projects? Is that happening inside a design time build? cc @ericstj |
I tested running the If it worked for that command, I am not sure if the file would be swapped on time, because it looks like |
That's not how msbuild works. The order of target file imports doesn't define the order in which targets run.
That's because you missed @ericstj's comment here: #79134 (comment). He suggested to use a different hook point as the current one runs too late. It's not clear to me how this actually worked to begin with and I'm nervous that our current packages in main contain the wrong intellisense file. Can you please double check that that's not the case? |
It seems that we've been including the wrong intellisense file in OOB packages since .NET 6.0 RC2. I created a console app targeting net6.0, I added the System.IO.Ports nuget package as a dependency, and manually changes versions, until I found that VS was still showing the correct intellisense in the nuget package version The RC1 package contained the xml file that included all the APIs, and the RC2 only contained exceptions with SR strings. The .NET 6.0 RC1 branch was snapped on August 17th and shipped on Sept 14th, while RC2 was snapped on Sept 14th and shipped on Oct 12th. Both RC1 and RC2 got snapped from main. Calendar. I found a couple of big refactoring that were merged to main before the RC2 snap and touched the packaging infra (Sept 14th):
I also found a change that might be relevant only to the System.IO.Ports case, but it went into RC1, so chances are it didn't cause this regression: |
That change isn't part of the release/6.0 branch (it can't be - otherwise we would have shipped net7.0 assemblies in our 6.0 packages):
That change isn't either in 6.0: I agree that the intellisense files are broken since .NET 6 but the above listed changes aren't the culprit. |
Reason for that is that the packaging logic tries to find the documentation file here (from the release/7.0 branch): This regressed with 688206b which changed the lookup code for the intellisense files. Previously, all files under the Fortunately this is already fixed in main: runtime/eng/intellisense.targets Lines 20 to 21 in 986abec
Meanwhile, as this is entirely unrelated to what this issue is tracking, @carlossanlop can you please work on the fix that @ericstj suggested in #79134 (comment)? |
Some of our assemblies are not showing intellisense in VS.
With our recent intellisense changes, I checked if we were overwriting the built intellisense xml with the one from the docs nuget package, and noticed it's not. I think we should, if the
UseIntellisensePackageDocXmlFile
property is not explicitly set tofalse
in the csproj.This problem seems to be somewhat related to having the
GeneratePlatformNotSupportedAssemblyMessage
property specified in the csproj, but I'm not entirely confident, because there are some assemblies without this problem. TheIsPartialFacadeAssembly
property does not seem to be affecting, although it could also be a combination of the two properties.Here's a list I collected:
Related to #79030
The text was updated successfully, but these errors were encountered: