我需要使用存储在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组件"。我究竟做错了什么?
答案 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
但不知道这是否可再发行......
因为它只涉及设计,开发和测试:
- 安装和使用权利。您可以在设备上安装和使用任意数量的软件副本进行设计,开发和测试 你的节目。
醇>
答案 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 \
祝你好运。如果这不会有帮助,请告诉我们.. 感谢。