【问题标题】:VisualStudioVersion="VersionLatest" is not being picked upVisualStudioVersion="VersionLatest" 未被拾取
【发布时间】: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,并将其从根节点移动到&lt;PropertyGroup&gt; 中它自己的节点。

我宁愿在批处理文件中没有对 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


【解决方案1】:

试试这个:使用命令行选项运行 MsBuild 以生成预处理的单个文件。在具有相同版本的工作计算机上执行相同操作。比较生成的文件。

它可能会为某些 .props 或 .targets 文件获取不同的内容。众所周知,这些会因安装或更新某些或其他内容而发生变化。我记得我在查找问题时遵循了一篇 msdn 文章来修复此类文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 2018-07-14
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2021-11-18
    相关资源
    最近更新 更多