我希望能够在构建过程中提取mage.exe并将其添加到我的部署包中。我需要能够根据当前目标的框架版本提取特定版本的mage.exe工具。因此,例如,在构建.NET 4.0项目时,我想从(Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0工具)而不是(Microsoft SDKs \ Windows \ v10.0A \)打包mage.exe bin \ NETFX 4.6工具)。
我在构建过程中使用GetFrameworkSdkPath Task但它似乎没有撤回正确的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>
使用这种方法,当框架版本为'v4.0'时,它为我提供了SDK v10.0A的路径,而不是预期的v8.0A。
有关如何在SDK中获取正确版本的mage.exe的任何想法吗?