有没有办法检测 .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' "
一起使用
在 .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' "