我已经创建了一个包含下面的头一个MSBuild凸出文件:VisualStudioVersion =“VersionLatest”没有被拾起
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0" TargetFrameworkVersion="4.5" VisualStudioVersion="VersionLatest">
这个凸出文件用于多项SSDT项目引发的MSBuild,配合部署。
对于大多数开发人员来说,这很好。但是,一个开发人员在尝试运行构建时遇到Deploy72002
异常。根据this的回答,这是由于未设置VisualStudioVersion。果然,在MSBuild调用之前的批处理文件中添加
set VisualStudioVersion="12.0"
可修复问题。
但是,我在印象之下(我现在找不到源代码)在proj文件的xml中设置VisualStudioVersion="VersionLatest"
足以使它使用安装的最高版本的VS。我甚至尝试将它从VersionLatest
设置为12.0
,并且将它从根节点移动到<PropertyGroup>
中的它自己的节点中。
我宁愿在批处理文件中没有对12.0的硬编码引用。我是否错过了明显的东西来使VersionLatest工作?
“VersionLatest”现在在Microsoft.Build.Utilities.v12.0.dll中简单地硬编码为12.0。 VS的下一个版本可能会有另一个MSBuild版本,可能会将其硬编码为不幸的数字。或者它会保持12.0,因为你要求ToolsVersion 12.0 :)直到你拥有该版本并知道它做了什么之前,不要做任何激烈的事情。 –
即使它在系统中硬编码为12,为什么不从这个开发人员的.proj文件中选取? –