2

我有一个 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

如果不可能,那么是否有一个现有的独立 exe 可以完成这项工作?

4

5 回答 5

1

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

于 2020-01-03T20:16:53.707 回答
1

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

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

于 2017-12-09T18:05:39.560 回答
1

SqlPackage 带有 SMSS 或 SQL 数据工具。

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

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

于 2016-12-01T14:49:37.953 回答
1

这似乎是我可以安装的“最小”包,并且仍然可以获得有效的工具(sqlpackage.exe)。

Microsoft® SQL Server® 数据层应用程序框架(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

附加:

2020 年中 URL 更新:

Microsoft® SQL Server® 数据层应用程序框架 (18.3.1)

https://www.microsoft.com/en-us/download/details.aspx?id=100297

于 2018-09-17T21:41:08.110 回答
0

通常您安装SSDT来执行此操作。如果那是您实际需要的,我不确定是否有不需要安装的便携式 SSDT 版本。

于 2016-12-01T14:47:27.500 回答