有没有办法检测 .targets MSBuild 文件中使用的当前 SDK?

Is there a way to detect the current SDK being used in a .targets MSBuild file?

在 .NET 中,您可以通过在顶级 Project 元素上指定 Sdk 属性来指定要使用的 .NET project SDK

<Project Sdk="Microsoft.NET.Web.Sdk">

我正在编写一个 NuGet 包并试图找到一个 MSBuild 属性 或保存正在使用的 SDK 的项目。我在官方文档中没有任何运气,在 MSBuild Structured Log Viewer 中检查构建时也没有找到一个。

是否有惯用的方法来识别已为 MSBuild .targets 文件中的项目选择了哪个 Sdk?

我本来希望属性喜欢

$(MSBuildProjectSdkName) // "Microsoft.NET.Web.Sdk"

我使用 Rider IDE 的项目属性找到的最接近的 window:

这是在使用 Microsoft.NET.Web.Sdk 的项目中。
所以在一个Web SDK项目中好像设置了3个SDK相关的属性:

UsingMicrosoftNETSdk
UsingMicrosoftNETSdkRazor
UsingMicrosoftNETSdkWeb

我想你可以确定Web SDK是否与Condition=" '$(UsingMicrosoftNETSdkWeb)' == 'true' "

一起使用