44

我有很多 .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

5 回答 5

46

答:微软现在有一个官方的 NuGet 包(见文)。


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 中的设置

完毕!

来源:对 SSDT (*.sqlproj) 项目的 Headless MSBuild 支持

于 2013-03-21T22:54:59.767 回答
7

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

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

于 2013-07-17T14:19:12.347 回答
3

Microsoft SQL Server Data Tools 团队发布了一个名为 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/

于 2017-03-29T08:39:44.517 回答
1

SSDT v12.0.50730.0 需要预先安装 Visual Studio。我发现最简单的解决方案是安装从 MSDN 订阅者下载中下载的最低限度的 Visual Studio 组件:

  • Visual Studio 2013 隔离
  • Visual Studio 2013 外壳

然后 SSDT 安装正常。

我还使用了上述解决方案的一部分。
* 安装 dacframework.msi * 安装 SQLDOM.MSI * 安装 SQLLS.MSI * 安装 SQLSysClrTypes.msi

我使用 MSBuild 12.0 来执行构建,该构建也可以单独下载。

于 2015-11-23T13:41:23.370 回答
0

我在 Azure DevOps CI/CD 管道上构建 SQL Server 项目时遇到了完全相同的问题。没有任何预构建的构建任务对我有用。

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

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

我通过使用MSBuild SDK.dacpac实现了这一点,该 SDK 能够从一组 SQL 脚本生成 SQL Server 数据层应用程序包 ( )。通过将第二个项目添加到解决方案中,我设法继续利用通过 Visual Studio 上的 SQL Server 对象资源管理器将项目链接到实时数据库的优势。我在这个答案中给出了关于我的实现的更详细的解释。

于 2020-04-18T18:19:12.270 回答