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

时间:2016-12-01 14:44:41

标签: c# sql-server windows-server-2012 windows-server sqlpackage

我有一台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”或其依赖项之一。系统找不到指定的文件。

如果没有在服务器上安装SSMS,我是否可以通过某种方式SqlPackage.exe提供所需的Microsoft.SqlServer.TransactSql.ScriptDom

如果不可能的话,是否有一个可以完成这项任务的现有独立执行官?

5 个答案:

答案 0 :(得分:1)

SqlPackage附带SMSS或SQL数据工具。

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

自2018年8月以来,最好的选择是从https://docs.microsoft.com/en-us/sql/tools/sqlpackage-download?view=sql-server-2017#get-sqlpackage-net-core-for-windows下载“ Windows .NET Core .zip文件”

答案 3 :(得分:0)

通常您安装SSDT来执行此操作。我不确定是否有可移动版本的SSDT在某个地方不需要安装,如果那就是你真正需要的。

答案 4 :(得分: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