.net 如何从MSBuild中的GetFrameworkDKPath获取特定版本的SDK

.net 如何从MSBuild中的GetFrameworkDKPath获取特定版本的SDK,.net,msbuild,.net,Msbuild,我希望能够在构建过程中拉出mage.exe并将其添加到部署包中。我需要能够根据当前目标的框架版本拉取特定版本的mage.exe工具。因此,例如,在构建.NET 4.0项目时,我希望从(Microsoft SDK\Windows\v8.0A\bin\NETFX 4.0工具)而不是(Microsoft SDK\Windows\v10.0A\bin\NETFX 4.6工具)打包mage.exe 我在构建过程中使用了GetFrameworkSdkPath任务,但它似乎没有收回正确的SDK版本路径 以下是

我希望能够在构建过程中拉出mage.exe并将其添加到部署包中。我需要能够根据当前目标的框架版本拉取特定版本的mage.exe工具。因此,例如,在构建.NET 4.0项目时,我希望从(Microsoft SDK\Windows\v8.0A\bin\NETFX 4.0工具)而不是(Microsoft SDK\Windows\v10.0A\bin\NETFX 4.6工具)打包mage.exe

我在构建过程中使用了GetFrameworkSdkPath任务,但它似乎没有收回正确的SDK版本路径

以下是我目前的做法:

<Choose>
<When Condition="'$(TargetFrameworkVersion)'=='v2.0'">
  <PropertyGroup>
    <SDKVersionPath>FrameworkSdkVersion20Path</SDKVersionPath>
  </PropertyGroup>
</When>
<When Condition="'$(TargetFrameworkVersion)'=='v3.5'">
  <PropertyGroup>
    <SDKVersionPath>FrameworkSdkVersion35Path</SDKVersionPath>
  </PropertyGroup>
</When>
<When Condition="'$(TargetFrameworkVersion)'=='v4.0'">
  <PropertyGroup>
    <SDKVersionPath>FrameworkSdkVersion40Path</SDKVersionPath>
  </PropertyGroup>
</When>
</Choose>

<Target Name="GetSDKVersionPath">
 <PropertyGroup>
   <SDKVersionPath Condition="$(SDKVersionPath)==''">Path</SDKVersionPath>
 </PropertyGroup>
 <Message Text="SDK VERSION PATH: $(SDKVersionPath)"/>
 <GetFrameworkSdkPath>
   <Output
       TaskParameter="$(SDKVersionPath)"
       PropertyName="SdkPath" />
 </GetFrameworkSdkPath>
</Target>

框架DKVersion20Path
框架DKVersion35Path
框架DKVersion40Path
路径
使用这种方法,当框架版本为“v4.0”时,它会为我提供指向SDK v10.0A的路径,而不是预期的v8.0A

关于如何在SDK中获得正确版本的mage.exe的路径,有什么想法吗