VS: DOTNET_SDK support for core msbuild attributes
In a recent issue on `DOTNET_SDK` support, @RainerSigwald proposed looking at [core MSBuild attributes](https://gitlab.kitware.com/cmake/cmake/-/issues/23166#note_1136279). This issue tracks the support for each of those attributes. Below is a slight edit of * [x] `VS_DOTNET_DOCUMENTATION_FILE` * [x] `VS_DOTNET_REFERENCE_` * [x] `VS_DOTNET_REFERENCEPROP_` * [ ] `VS_DOTNET_REFERENCES` (ideally *only when targeting .NET Framework* and error if targeting .NET Core/.NET 5.0+) * [x] `VS_PACKAGE_REFERENCES` * [x] `DOTNET_TARGET_FRAMEWORK` * [x] `VS_GLOBAL_ROOTNAMESPACE` * [x] `VS_GLOBAL_<variable>` Additionally, I think it does *not* make sense to support * [x] `DOTNET_TARGET_FRAMEWORK_VERSION`, since that's tied to .NET Framework and shouldn't be used for .NET Core/.NET 5.0+ projects (prefer `DOTNET_TARGET_FRAMEWORK`'s specification of a target framework moniker instead) * [ ] `VS_PROJECT_IMPORT`, since imports from NuGet packages should be handled by `dotnet restore`/`MSBuild.exe -restore` There are also a couple of new things to consider supporting: * [ ] Runtime identifier, the .NET Core/.NET 5.0+ mechanism for supporting target OS/OS version/architecture. For `RuntimeIdentifier`, CMake supports it via `VS_GLOBAL_RuntimeIdentifier`. I am hesitant adding another variable. FYI @baronfel
issue