【问题标题】:Why C# does not recognize Server() even after adding assembly "Microsoft.SqlServer.ConnectionInfo"为什么即使在添加程序集“Microsoft.SqlServer.ConnectionInfo”之后 C# 也无法识别 Server()
【发布时间】:2018-10-11 09:04:59
【问题描述】:

找不到类型或命名空间名称“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

【问题讨论】:

  • 你检查过你项目中的引用吗?
  • "您是否缺少 using 指令或程序集引用?" - 您添加了使用,但您是否还添加了程序集引用?
  • @Han:是的,是的
  • 确保C:\Program Files (x86)\Microsoft SQL Server\140\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfo.dll 在您项目的引用中。如果您使用不同的 SQL Server,该文件夹可能会有所不同。我的是 VS 2017 中捆绑的 SQL Express。
  • 那些似乎正在使用来自 Microsoft.SqlServer.Management.Smo 命名空间的 SMO 对象,例如Server

标签: c# smo


【解决方案1】:

安装这个 nuget 包:

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

然后添加 using 指令:

使用 Microsoft.SqlServer.Management.Smo;

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

var server = new Server();

安装 SMO

从 SQL Server 2017 SMO 开始分发为 Microsoft.SqlServer.SqlManagementObjects NuGet 包允许用户 使用 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

【讨论】:

  • 它已经添加到引用中并且存在于您指定的文件夹中。仍然出错
  • 无法安装,因为 NuGet 版本需要 2.12,但我可以更新 NuGet,因为 VS 2012。见stackoverflow.com/questions/27384885/…
  • @SureshKamrushi 我看到了你的截图。你写了new server(...)。应该是new Server(...)。 C# 区分大小写。
  • using directive,而不是 usingstatement。 C# 有两个功能都使用using 关键字。使用一个人的名字来指代另一个人无助于交流。
  • 由于安装了“Microsoft.SqlServer.SqlManagementObjects”而解决。错字是因为我尝试了不同的案例。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    Microsoft.SqlServer.dac.dll
    

    如果找不到dll,则需要安装SSDT(Sql Server Data Tools)。

    【讨论】:

      猜你喜欢
      • 2018-12-08
      • 2014-08-02
      • 2021-06-26
      • 2013-06-22
      • 1970-01-01
      • 2021-12-26
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多