为什么即使添加了程序集“ Microsoft.SqlServer.ConnectionInfo”,C#也无法识别Server()

时间:2018-10-11 09:05:00

标签: c# smo

找不到类型或名称空间名称“服务器”(您是否缺少using指令或程序集引用?)

string connetionString = @"connectionStirng"; 
SqlConnection conn = new SqlConnection(connetionString); 
var server = new Server(new ServerConnection(conn));

添加在顶部

using Microsoft.SqlServer.Management.Common;

仍然给出错误。
任何需要的帮助。

已检查:
Why i'm getting error for the Microsoft.SqlServer.Server namespace?
I can't add Microsoft.SqlServer.Management.Common to my ASP.NET MVC Application

enter image description here

3 个答案:

答案 0 :(得分:1)

安装此nuget软件包:

  

https://www.nuget.org/packages/Microsoft.SqlServer.SqlManagementObjects

然后使用指令添加

  

使用Microsoft.SqlServer.Management.Smo;

现在您可以创建服务器对象。

var server = new Server();

安装SMO

  

从SQL Server 2017 SMO开始,随着   Microsoft.SqlServer.SqlManagementObjects NuGet包以允许用户   用SMO开发应用程序。

     

这是SharedManagementObjects.msi的替代,   以前作为每个版本的SQL Feature Pack的一部分发布的   SQL Server。使用SMO的应用程序应更新为使用   NuGet软件包将负责确保   二进制文件随正在开发的应用程序一起安装。

https://docs.microsoft.com/en-us/sql/relational-databases/server-management-objects-smo/installing-smo?view=sql-server-2017

答案 1 :(得分:0)

根据Han的建议,请检查程序集引用路径,并确保文件位于引用位置。我曾经遇到过类似的问题,该问题在开发环境中有效,但在测试服务器上却出错。原因是测试服务器上未安装SQL Server Management Studio。所以我将所需的程序集从开发机复制到测试服务器上应用程序的bin文件夹中,并且可以正常工作。

答案 2 :(得分:0)

您可以尝试添加对以下内容的引用吗?

Microsoft.SqlServer.dac.dll

如果找不到dll,则需要安装SSDT(SQL Server数据工具)。