引用Microsoft.SqlServer.Smo.dll

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

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

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

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

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

SQL Serverpipe理对象(SMO)可作为相关SQL Server(20XX)function包的一部分下载(请检查小版本,因为我不相信这些是可再发行的?)

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

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

Install-Package Unofficial.Microsoft.SQLServer.SMO

我知道这是一个古老的问题,但我碰到了同样的问题。 @Mitch_Wheat是正确的,至less你需要引用4个SMO组件。 试图一次添加所有4,但是,给了我你列出的错误。

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

你需要安装下面的软件包来解决这个问题,我已经解决了这个问题两次,这个软件包希望它可以为大家工作…

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

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

如果您想要http://rndp-android.blogspot.com/p/missing-microsoftsqlservermanagementsdk.html ,我也在我的博客中提供了一些关于此的技巧和资源

对于那些需要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

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

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

嗯。 尝试注册DLL库,在DOS提示符下运行(我很好奇它为什么没有注册,我试图在安装了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 \

祝你好运。 让我们知道如果这不会帮助..谢谢。