如何在构建服务器上构建.sqlproj项目?

时间:2013-03-21 19:25:07

标签: sql-server-data-tools build-server

我有许多需要在我们的构建服务器上构建的.sqlproj项目。我不想在构建服务器上安装所有Visual Studio,因此我可以安装SSDT来构建这些。如何在没有完整VS安装的情况下构建.sqlproj项目?

这是我在没有安装SSDT的情况下尝试构建时在构建服务器上遇到的原始错误:

C:\MyProject\MyProj.sqlproj (4): The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.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.

4 个答案:

答案 0 :(得分:45)

答案: Microsoft现在有一个official NuGet package(请参阅blog post)。


旧答案,2016年8月之前;如果NuGet包不适合您,则提供:

  1. 安装dacframework.msi(x86 | x64
  2. 安装SQLDOM.MSI(x86 | x64
  3. 安装SQLLS.MSI(x86 | x64
  4. 安装SQLSysClrTypes.msi(x86 | x64
  5. 安装SSDTBuildUtilities.msi(来自“管理员安装点”,如步骤3中的设置here
  6. 完成!

    来源:Headless MSBuild Support for SSDT (*.sqlproj) Projects

答案 1 :(得分:7)

Microsoft SQL Server数据工具: http://msdn.microsoft.com/en-us/data/hh297027

在构建计算机上安装工具以解决问题。

答案 2 :(得分:4)

Microsoft SQL Server数据工具团队发布了一个名为Microsoft.Data.Tools.Msbuild的NuGet包,它有助于在构建服务器上构建SQL项目。

请参阅:https://blogs.msdn.microsoft.com/ssdt/2016/08/22/releasing-ssdt-with-visual-studio-15-preview-4-and-introducing-ssdt-msbuild-nuget-package/

NuGet包:https://www.nuget.org/packages/Microsoft.Data.Tools.Msbuild/

答案 3 :(得分:0)

我在Azure DevOps CI / CD管道上构建SQL Server项目时遇到了完全相同的问题。预制的构建任务都不适合我。

一些答案​​提到了NuGet软件包,但是我不确定如何使用它,因为SQL Server项目不允许安装NuGet软件包。

我通过避免将SQL Server项目添加到解决方案中来解决了这个问题。

我通过使用MSBuild SDK实现了这一目标,该功能能够从一组SQL脚本生成SQL Server数据层应用程序包(.dacpac)。通过将第二个项目添加到解决方案中,我设法继续利用通过Visual Studio上的SQL Server Object Explorer将项目链接到实时数据库的优势。在此answer中,我对自己的实现进行了更详细的说明。