在未安装SSMS的服务器上使用SqlPackage.exe
我有一台Windows 2012服务器。服务器可以访问我的SQL数据库。 我无权访问SQL数据库服务器,并且无法在运行我的网站的Windows 2012服务器上安装SSMS。在未安装SSMS的服务器上使用SqlPackage.exe
我想用SqlPackage.exe
与.dacpac文件
我碰到下面的错误来更新我的数据库方案:
Unhandled Exception: System.TypeInitializationException: The type initializer for 'Microsoft.SqlServer.Dac.DacPackage' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Microsoft.SqlServer.Dac.DacServices' threw an exception. ---> System.TypeInitializationException: The type initializer for 'SqlSchemaModelStaticState' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.SqlServer.TransactSql.ScriptDom, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
是否有某种方式,我可以给SqlPackage.exe
所需Microsoft.SqlServer.TransactSql.ScriptDom
无需安装SSMS在服务器上?
如果这是不可能的,那么是否有一个独立的EXE可以完成这项工作?
SqlPackage附带SMSS或SQL数据工具。
我看不出安装这两个二进制文件来部署dacpac的其他选择,它也可以从大多数运行Visual Studio的计算机上运行,因为sql数据工具是默认VS安装的一部分。
我没有试图从装有VS的服务器上运行它。在这种情况下,我会让SSDT来完成这项工作:) – Squazz
您可以下载这些的NuGet包(根据所需版本和平台)。在那里你会发现任何缺少的DLL。
https://www.nuget.org/packages?q=microsoft.sqlserver.dac+microsoft.sqlserver.dacfx
(或者你也可以写自己的C#/ PowerShell的应用程序,直接使用Microsoft.SqlServer.Dac.DacServices
从包中。)
什么,你应该寻找,如果你有这种问题是“可再发行版”的工具。 [此博客文章](http://sqlblog.com/blogs/jamie_thomson/archive/2012/05/30/redistribution-of-sqlpackage-exe-ssdt.aspx)讨论了SqlPackage的重新分配。可能还有其他方法可以强制它“工作”,而不会降低可重新分配的路线,但它不会被正式授权使用。 –
服务器用于阻止像你这样的人使用后门服务器。没有更多的上下文,这是一个糟糕的问题,因为你应该与你的本地DBA /服务器sysadmin –