参考Microsoft.SqlServer.Smo.dll

时间:2011-06-23 11:39:10

标签: .net sql-server smo

我需要使用存储在Microsoft.SqlServer.Smo.dll中的Server类。我在常用的References对话框中看不到这个程序集。我在C:/ Program Files / Microsoft SQL Server / 100 / SDK / Assemblies中找到它并尝试从那里引用但是Visual Studio会引发错误" A reference' C:/ Program Files / Microsoft SQL服务器/ 100 / SDK /组件/ Microsoft.SqlServer.Smo.dll'无法添加。请确保该文件是可访问的,并且它是有效的程序集或COM组件"。我究竟做错了什么?

11 个答案:

答案 0 :(得分:77)

C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies是正确的文件夹位置(或64位系统上的C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies)。

您需要添加对以下内容的引用:

  • Microsoft.SqlServer.ConnectionInfo.dll

  • Microsoft.SqlServer.Smo.dll

  • Microsoft.SqlServer.Management.Sdk.Sfc.dll

  • Microsoft.SqlServer.SqlEnum.dll

(这些是构建SMO应用程序所需的最小文件)

对于SQL Server 2016,此位置为C:\Program Files (x86)\Microsoft SQL Server\130\SDK\Assemblies(对于64位版本)。

参考:How to: Create a Visual C# SMO Project in Visual Studio .NET

SQL Server管理对象(SMO)可以作为相关SQL Server (20XX) Feature Pack的一部分下载(检查小图,因为我不相信这些是可再发行的?)

答案 1 :(得分:2)

你可以试试这个非官方的nuget包...

https://www.nuget.org/packages/Unofficial.Microsoft.SQLServer.SMO/

  

Install-Package Unofficial.Microsoft.SQLServer.SMO

答案 2 :(得分:1)

我知道这是一个老问题,但我遇到了同样的问题。 @Mitch_Wheat是正确的,至少需要引用4个SMO程序集。但是,尝试一次添加所有4个,给了我列出的错误。

一次添加一个程序集会绕过错误。

答案 3 :(得分:1)

对于那些需要sql server 2014版本(版本120)的用户,您需要从Microsoft下载并安装以下软件包:

您可以在此页面上找到Microsoft网站上的所有相关信息(正如@ mitch-wheat所建议的那样): https://www.microsoft.com/en-gb/download/details.aspx?id=42295

答案 4 :(得分:0)

你需要安装以下软件包来解决这个问题,我已经用这个软件包解决了这个问题两次希望它也适用于所有人...

Microsoft SQL Server 2005管理对象集合 Management Objects Collection包中包含SQL Server 2005管理API的几个关键元素,包括分析管理对象(AMO),复制管理对象(RMO)和SQL Server管理对象(SMO)。开发人员和DBA可以使用这些组件以编程方式管理SQL Server 2005。

您可以从Microsoft网站获取Microsoft SQL Server 2005功能包 - 2008年12月[http://www.microsoft.com/en-us/download/details.aspx?id=11988] [1] 但是,如果您没有找到可以从我的博客下载的资源,下载页面的链接位置每次都会更改。

如果您愿意,我还在我的博客中提供了一些有关此内容的提示和资源 http://rndp-android.blogspot.com/p/missing-microsoftsqlservermanagementsdk.html

答案 5 :(得分:0)

如果您想使用Backup类,请将Microsoft.SqlServer.Management.SmoExtended添加到您的项目中。

答案 6 :(得分:0)

获取与此问题相关的所有7 ddls的简便方法是

  

Microsoft.SqlServer.ConnectionInfo.dll,
  Microsoft.SqlServer.ConnectionInfoExtended.dll,
  Microsoft.SqlServer.Management.Sdk.Sfc.dll,
  Microsoft.SqlServer.Smo.dll,
  Microsoft.SqlServer.SmoExtended.dll,
  Microsoft.SqlServer.SqlClrProvider.dll,
  Microsoft.SqlServer.SqlEnum.dll

创建单独的console application

使用nuget

下载这些内容
  

PM>安装包Microsoft.SQLServer.SMO -Version 12.0.2000.8

构建应用程序,所有dlls都在bin文件夹中......您可以从那里复制并添加reference to your existing application

https://www.nuget.org/packages/Microsoft.SQLServer.SMO/12.0.2000.8

答案 7 :(得分:0)

您可以使用: https://www.nuget.org/packages/Microsoft.SqlServer.SqlManagementObjects 看安装信息: https://docs.microsoft.com/nl-be/sql/relational-databases/server-management-objects-smo/installing-smo

但不知道这是否可再发行......

因为它只涉及设计,开发和测试:

  
      
  1. 安装和使用权利。您可以在设备上安装和使用任意数量的软件副本进行设计,开发和测试   你的节目。
  2.   

https://docs.microsoft.com/nl-be/sql/relational-databases/server-management-objects-smo/smo-license-terms

答案 8 :(得分:0)

在Management Studio中按需同步拉取订阅 连接到Management Studio中的订阅服务器,然后展开服务器节点。

展开“复制”文件夹,然后展开“本地订阅”文件夹。

右键单击要同步的订阅,然后单击“查看同步状态”。

在“查看同步状态 - :”对话框中,单击“启动”。同步完成后,将显示“已完成同步”消息。

单击“关闭”。

答案 9 :(得分:0)

Microsoft.SqlServer.SqlManagementObjects NuGet软件包的接缝类似于SQL Server 2017 之后的官方安装方法

答案 10 :(得分:-3)

嗯。 尝试通过在DOS提示符下运行来注册DLL库(我很好奇为什么它没有注册。我尝试在安装了SQL2008且没有问题的Windows上使用它)

  

“c:\ windows \ system32 \ regsvr32.exe C:/ Program Files / Microsoft SQL   服务器/ 100 / SDK /组件/ Microsoft.SqlServer.Smo.dll“

由于目录名称中的空格,您需要引号。

如果您运行的是64位Windows,则regsvr32.exe将位于C:\ windows \ syswow64 \

祝你好运。如果这不会有帮助,请告诉我们.. 感谢。