【问题标题】:TeamCity/.sqlproj build via MSBuild -- FAILEDTeamCity/.sqlproj 通过 MSBuild 构建——失败
【发布时间】:2017-07-26 09:37:32
【问题描述】:

这一切都始于 TC 中的 VS2017 runner 类型。它失败了,没有任何错误或提示(解决方案级别的(default targets) -- FAILED. 消息除外)。我将其范围缩小到 .sqlprojects。这些不是通过 MSBuild 构建的,它们确实在构建代理上的 VS2017 中完美编译。 我把它归咎于 SSDT……但我想我检查了一切。这是在 TC 构建中上升到解决方案级别的问题:

我注意到,对于 VS2017,SSDT 带有 VS 设置。 “工作负载”“数据存储和处理”已安装,“单个组件”下的“SQL Server Data Tools”也已安装。 我在https://docs.microsoft.com/EN-US/sql/ssdt/download-sql-server-data-tools-ssdt 上注意到“如果您在 Visual Studio 2017 中使用 SSDT,请安装 AS 和 RS 组件”这句话。做到了。没有改变。 SSDT 也为以前的版本单独安装。

这个stack 是相关的,但对我没有帮助。

还有其他想法吗?


我更进一步。除了 VS,构建工具也安装在构建代理上,TeamCity 的 VS2017 运行器显然使用构建工具中的 MSBuild。 正如您在上面看到的,我也从 Build Tools 中重现了 MSBuild 的问题。 如果我选择 VS2017 的 MSBuild“版本”,它就像一个魅力(就像它在 VS 中一样)。 简而言之:

不工作

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin

作品

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin

【问题讨论】:

    标签: msbuild teamcity visual-studio-2017 sql-server-data-tools database-project


    【解决方案1】:

    我从Lukie Briner 找到了一篇博文,他的最后一段为我指出了解决方案(谢谢哥们!)。

    仍然不知道为什么/如何会发生这种情况,可能与构建工具、SSDT、Visual Studio 等的安装顺序有关?

    原因:构建工具及其版本的 MSBuild 中缺少 SSDT。

    我做了什么:

    复制SSDT文件夹

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0

    C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0.

    哇!我终于看到了真正的错误消息

    现在我不得不从

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft

    C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\Extensions\Microsoft

    然后砰……

    是的,TeamCity 的 VS2017 跑步者也很满意。

    【讨论】:

      【解决方案2】:

      似乎构建工具和 SSDT 的问题现在已经解决,您不必再手动复制目标目录(Visual Studio Build Tools 2017 v15.9.8)。

      1. 只需打开安装在构建代理服务器上的 Visual Studio
      2. 修改构建工具安装
      3. 选择安装“数据存储和处理工具”
      4. 修改

      构建现在应该可以工作了。

      【讨论】: