我正在使用MSBuild在不同的工作站上构建解决方案。例如,在安装了Visual Studio 2017且平台版本为10.017763.0的工作站上,我这样做:
msbuild solution.sln / p:配置=发布/ p:平台= x64 /p:TargetPlatformVersion=10.0.17763.0
在其他节点上,此目标不可用。那么,如果有几个可用的平台,我如何告诉MSBUILD使用最新的目标平台版本?
在此先感谢您的建设性投入。
答案 0 :(得分:3)
您可以冒险使用以下(未记录的)函数来获取受支持的最新版本:
<PropertyGroup>
<LatestTargetPlatformVersion>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))</LatestTargetPlatformVersion>
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">$(LatestTargetPlatformVersion)</TargetPlatformVersion>
</PropertyGroup>
有关更多背景信息以及上述摘要的来源,请参见here和here。
但是:您可能会再三考虑并考虑完全使用它。因为这样,您实际上没有可靠的构建,这取决于您使用不同设置(甚至不受控制)构建的节点。您可能应该选择对所有节点使用最小命令版本,或升级其他版本。这样,无论在何处构建,都可以确保使用相同的(构建)工具并获得相同的构建结果。