对于构建服务器,我们需要针对 Visual Studio 2017 安装 SQL Server Data Tools。
我们的构建服务器已经有“Visual Studio 2017 的构建工具”,它为 headless 构建提供了很好的支持。但是任何带有 SSDT 项目的解决方案都会由于缺少 MSBuild 目标而失败,例如:
[MSBuild] src\Database\Upfront.Database.sqlproj: Build default targets
[10:27:46][src\Database\Upfront.Database.sqlproj] E:\BuildAgent\work\7769fbf76d8b9008\src\Database\Upfront.Database.sqlproj(56, 3): error MSB4019: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
首先,我尝试修改“Build Tools for Visual Studio 2017”安装的组件集,但似乎没有可用的 SSDT 组件。
其次,我尝试安装 SSDT for Visual Studio 2017 ,它似乎没有正确安装到“VS 2017 的构建工具”配置文件中。它确实允许我创建一个新的 VS 2017 配置文件,例如 SQL,因此所需的 MSBuild 文件安装在 C:\Program Files (x86)\Microsoft Visual Studio\2017\SQL\
下。 ;但是它改变了我的 msbuild 环境变量,因此找不到“VS 2017 的构建工具”文件(位于 C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools
中),导致 C# 项目无法构建。
似乎“SSDT for Visual Studio 2017”和“Build Tools for Visual Studio 2017”彼此不兼容。有没有人能让他们一起工作?或者有没有人找到在构建服务器上构建 SSDT 项目的更好方法?
SSDT 非常棒,除了构建服务器支持,这每次都很痛苦。
最佳答案
对 ssdt 数据库项目的构建支持现在可用作此确切场景的 nuget 包。
这包含有关如何为 ssdt 数据库项目配置构建服务器的所有详细信息:
https://blogs.msdn.microsoft.com/ssdt/2016/08/22/part-5-use-your-own-build-and-deployment-agent/
其要点是您下载 nuget 包并将其解压缩到某处,然后设置几个环境变量以指向包内容,您应该可以在没有 Visual Studio 的情况下继续构建。
埃德
关于visual-studio-2017 - 用于 Visual Studio 2017 的 SQL Server Data Tools (SSDT) 的 headless 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46899252/