【发布时间】:2015-01-10 20:36:22
【问题描述】:
我创建了一个包含以下标头的 MSBuild proj 文件:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0" TargetFrameworkVersion="4.5" VisualStudioVersion="VersionLatest">
此项目文件用于触发多个 SSDT 项目的 MSBuild,与 Deploy 结合使用。
对于大多数开发人员来说,这很好。但是,一位开发人员在尝试运行构建时遇到了Deploy72002 异常。根据this 的回答,这是由于未设置 VisualStudioVersion。果然,加了
set VisualStudioVersion="12.0"
在 MSBuild 调用之前的批处理文件中修复了该问题。
但是,我的印象(我现在找不到源)在 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 文件中为这个开发者提取它?
标签: visual-studio deployment msbuild sql-server-data-tools