TeamCity/.sqlproj 通过 MSBuild 构建——失败

TeamCity/.sqlproj build via MSBuild -- FAILED

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

我注意到 VS2017 SSDT 随 VS 设置一起提供。 "Workload" "Data storage and processing" 已安装,"Individual components" 下的 "SQL Server Data Tools" 也已安装。 我注意到 https://docs.microsoft.com/EN-US/sql/ssdt/download-sql-server-data-tools-ssdt 上的句子 "If you are using SSDT with Visual Studio 2017, install the AS and RS components"。做到了。没有改变。之前的版本也单独安装了SSDT

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

还有其他想法吗?


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

不起作用

C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\Bin

作品

C:\Program Files (x86)\Microsoft Visual Studio17\Professional\MSBuild.0\Bin

我从 Lukie Briner 找到了一个博客 post,他的最后一段指出了解决方案(谢谢你的朋友!)。

还是不知道why/how会发生这种情况,可能与Build Tools、SSDT、Visual Studio等的安装顺序有关?

原因:Build Tools 及其 MSBuild 版本中缺少 SSDT。

我做了什么:

复制SSDT文件夹

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

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

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

现在我不得不从

复制SQLDBSQLEditor(我认为SQLCommon已经存在于目标文件夹中,如果不存在也应该复制)

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

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

和繁荣...

是的,来自 TeamCity 的 VS2017 跑步者也对此感到满意。

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

  1. 只需打开Visual Studio安装在构建代理服务器上
  2. 修改构建工具安装
  3. Select 安装 "Data storage and processing tools"
  4. 修改

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