dotnet / docs

This repository contains .NET Documentation.
https://learn.microsoft.com/dotnet
Creative Commons Attribution 4.0 International
4.29k stars 5.92k forks source link

Conflicting statements regarding which MSBuild/VS versions are supported by 8.0 SDKs #42692

Open ssrmm opened 2 months ago

ssrmm commented 2 months ago

Describe the issue or suggestion

From what I could find there are at least three places that state the minimum MSBuild/VS versions supported by each feature band of the .NET SDK.

All of these places disagree on what is compatible and what isn't. Below are the compatible MSBuild/VS version according to each. SDK Version Documentation page Download page (as of release 8.0.8) Breaking changes
8.0.1xx 17.7 17.8 17.7
8.0.2xx 17.8 N/A 17.8
8.0.3xx 17.8 17.10 17.8
8.0.4xx 17.8 17.11 17.9

After "falling in the trap" of believing the documentation page and getting a really poor error message from VS 17.8 with SDK 8.0.400, I believe that the information on the breaking changes page is the one that is correct. but I don't really know.

These version support tables should be unified to contain the correct information in all places.

gewarren commented 1 month ago

@marcpopMSFT Can you comment on this discrepancy?

marcpopMSFT commented 1 month ago

The download page is listing the version of VS that we ship in. It might be worth changing the wording there to make that more clear. This matches the second column in the documentation page that was linked.

The documentation page captures our intent. However, NuGet took an upgraded dependency that forced us to upgrade our minimum VS version to 17.9 in 8.0.4xx. I didn't update the documentation page but rather got NuGet to fix that upgrade and we're in the process of resolving this so that the November release will again allow for 17.8. We'll need to fix the breaking changes page at that time.

Note that even though we allow 8.0.4xx to be used with 17.8, we cannot guarantee that everything will work. The CodeStyle analyzer for example will not work in that configuration unless you set an additional property BuildWithNetFrameworkHostedCompiler set to true which is not well known. That property is on by default in net9 fwiw.

https://github.com/dotnet/sdk/pull/43995 will fix the min version

ssrmm commented 1 month ago

@marcpopMSFT Regarding the download page: I was looking at these two pieces of information: Image

The Included in value seems pretty clear to me as to what it means. Are you saying that Visual Studio support is also supposed to be the version it is included in? If so, what is the reason for having what seems to be the same information twice?

marcpopMSFT commented 1 month ago

Ahh, the Included in section doesn't exist for the 8.0.10 release and I didn't expand the page. I think those basically mean the same thing though I'd need someone more familiar with the intent on the download page to comment. @gewarren do you know why Included in isn't there for 8.0.10 and do you know what the intent was for that versus the VS support node?

gewarren commented 1 month ago

Sorry for the delay on this. Tagging @mairaw for the downloads page question here.

Image

mairaw commented 1 month ago

Tagging @rbhanda since this data is driven from the releases.json files on dotnet/core. Rahul, did we miss any VS tagging for the latest runtime release? I'd imagine that one of those versions is included in VS.

rbhanda commented 1 month ago

https://github.com/dotnet/core/pull/9558 to fix this issue

gewarren commented 1 month ago

I think there's still an outstanding question about the difference between Included in and Visual Studio support.