代码之家  ›  专栏  ›  技术社区  ›  Suresh Kamrushi Dimitri Mestdagh

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

  •  1
  • Suresh Kamrushi Dimitri Mestdagh  · 技术社区  · 6 年前

    找不到类型或命名空间名称“Server”(是否缺少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 回复  |  直到 6 年前
        1
  •  1
  •   Han    6 年前

    安装此nuget软件包:

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

    使用Microsoft.SqlServer.Management.Smo;

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

    var server = new Server();
    

    安装SMO

    从SQL Server 2017开始,SMO作为 使用SMO开发应用程序。

    这是SharedManagementObjects.msi的替代品,它是 以前作为每个版本的SQL功能包的一部分发布 SQL Server的。应该更新使用SMO的应用程序以使用 NuGet包,并将负责确保

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

        2
  •  0
  •   Sandeep Pulkundwar    6 年前

    按照Han的建议,请检查程序集引用路径,并确保文件位于引用位置。我也遇到过类似的问题,这是在开发环境下工作,但在测试服务器上出错。原因是测试服务器上没有安装SQL Server Management studio。因此,我将所需的程序集从dev machine复制到测试服务器上应用程序的bin文件夹中,这样就可以了。

        3
  •  0
  •   Gauravsa    6 年前

    是否可以尝试添加对以下内容的引用:

    Microsoft.SqlServer.dac.dll
    

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