在未安装SSMS的服务器上使用SqlPackage.exe

问题描述 投票:1回答:4

我有一个Windows 2012服务器。服务器可以访问我的SQL数据库。我无权访问SQL数据库服务器,并且我无权在运行我的网站的Windows 2012服务器上安装SSMS。

我想使用SqlPackage.exe用.dacpac文件更新我的数据库方案

我收到以下错误:

未处理的异常:System.TypeInitializationException:'Microsoft.SqlServer.Dac.DacPackage'的类型初始值设定项引发异常。 ---> System.TypeInitializationException:'Microsoft.SqlServer.Dac.DacServices'的类型初始值设定项引发了异常。 ---> System.TypeInitializationException:'SqlSchemaModelStaticState'的类型初始值设定项引发了异常。 ---> System.IO.FileNotFoundException:无法加载文件或程序集'Microsoft.SqlServer.TransactSql.ScriptDom,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其依赖项之一。该系统找不到指定的文件。

有没有什么方法可以给SqlPackage.exe所需的Microsoft.SqlServer.TransactSql.ScriptDom而无需在服务器上安装SSMS?

如果不可能,那么现有的独立执行程序是否可以完成这项工作?

c# sql-server windows-server-2012 windows-server sqlpackage
4个回答
1
投票

SqlPackage附带SSMS for SQL Data Tools。

除了安装这两个二进制文件中的一个以部署dacpac之外别无其他选择,大多数计算机都可以运行visual studio,因为sql数据工具是默认VS安装的一部分。

https://msdn.microsoft.com/en-us/library/mt204009.aspx


1
投票

您可以下载任何这些nuget包(取决于所需的版本和平台)。在那里你会发现任何丢失的DLL。 https://www.nuget.org/packages?q=microsoft.sqlserver.dac+microsoft.sqlserver.dacfx

(或者您可以直接从包中使用Microsoft.SqlServer.Dac.DacServices编写自己的C#/ Powershell应用程序。)


0
投票

通常你安装SSDT来做到这一点。我不确定是否有一个可移植版本的SSDT,如果那就是你真正需要的东西,不需要安装。


0
投票

这似乎是我可以安装的“最小”包,仍然可以使用工具(sqlpackage.exe)。

Microsoft®SQLServer®数据层应用程序框架(2016年6月30日)

https://www.microsoft.com/en-us/download/confirmation.aspx?id=53013

以上安装时将其安装到以下目录(今天)

C:\ Program Files \ Microsoft SQL Server \ 130 \ DAC \ bin \ SqlPackage.exe

© www.soinside.com 2019 - 2024. All rights reserved.