.net-参考Microsoft.SqlServer.Smo.d

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

SiberianGuy asked 2020-07-30T17:40:09Z
10个解决方案
82 votes

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.Selserver.Smo.dl

  • 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位版本)。

参考:如何:在Visual Studio .NET中创建Visual C#SMO项目

SQL Server管理对象(SMO)可作为相关SQL Server(20XX)功能包的一部分进行下载(请检查小字体,因为我不认为这些是可再发行的?)

Mitch Wheat answered 2020-07-30T17:41:07Z
3 votes

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

  • SQLSysClrTypes(x64):[https://download.microsoft.com/download/1/3/0/13089488-91FC-4E22-AD68-5BE58BD5C014/ENU/x64/SQLSysClrTypes.msi]
  • SharedManagementObjects(x64):[https://download.microsoft.com/download/1/3/0/13089488-91FC-4E22-AD68-5BE58BD5C014/ENU/x64/SharedManagementObjects.msi]

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

gigi answered 2020-07-30T17:41:41Z
2 votes

您可以尝试这个非官方的nuget软件包...

[HTTPS://呜呜呜.弩哥谈.org/packages/unofficial.Microsoft.SQLServer.SM O/]

安装包Unofficial.Microsoft.SQLServer.SMO

TWilly answered 2020-07-30T17:42:10Z
1 votes

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

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

EBarr answered 2020-07-30T17:42:34Z
0 votes

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

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

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

如果您愿意,我还在博客中提供了一些提示和资源。[http://rndp-android.blogspot.com/p/missing-microsoftsqlservermanagementsdk.html]

Dipen answered 2020-07-30T17:43:08Z
0 votes

在要使用Backup类的情况下,将Microsoft.SqlServer.Management.SmoExtended添加到您的项目中。

Seyed Morteza Mousavi answered 2020-07-30T17:43:30Z
0 votes

一种简单的方法来获取与此问题相关的所有dlls

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

创建一个单独的dlls

使用dlls下载那些

PM>安装包Microsoft.SQLServer.SMO-版本12.0.2000.8

生成应用程序,所有dlls都将位于bin文件夹中...您可以从那里复制并添加reference to your existing application

[HTTPS://呜呜呜.弩哥谈.org/packages/Microsoft.SQLServer.SM O/12.0.2000.8]

Moumit answered 2020-07-30T17:44:42Z
0 votes

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

但不知道是否可以重新分配...

因为它只谈论设计,开发和测试:

  1. 安装和使用权利。 您可以在设备上安装和使用任意数量的软件副本来设计,开发和测试 您的程序。

[HTTPS://docs.Microsoft.com/哪里-不饿/SQL/relational-databases/server-management-objects-沙漠/沙漠-license-terms]

juFo answered 2020-07-30T17:45:20Z
0 votes

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

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

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

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

单击关闭。

Rahul Singh answered 2020-07-30T17:45:58Z
-3 votes

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

“ c:\ windows \ system32 \ regsvr32.exe C:/ Program Files / Microsoft SQL Server / 100 / SDK / Assemblies / Microsoft.SqlServer.Smo.dll“

由于目录名称中有空格,因此需要使用引号。

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

祝你好运。 让我们知道这是否无济于事。谢谢。

lb. answered 2020-07-30T17:46:35Z
translate from https://stackoverflow.com:/questions/6453415/reference-microsoft-sqlserver-smo-dll