Microsoft.SqlServer.Management.Smo找不到Server类

时间:2013-12-17 22:37:18

标签: sql-server vb.net sql-server-2008 smo

是的,我确实添加了4个dll,见于:

C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies

这些是:

Microsoft.SqlServer.ConnectionInfo.dll
Microsoft.SqlServer.Smo.dll
Microsoft.SqlServer.Management.Sdk.Sfc.dll
Microsoft.SqlServer.SqlEnum.dll

并修改了应用配置,因此它接受了dll的版本:

<startup useLegacyV2RuntimeActivationPolicy="true">
</startup>

从VB.NET导入:

Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common

程序会识别除服务器以外的所有单词:

Dim fileInfo As New FileInfo(fi.FullName)
Dim script As String = fileInfo.OpenText().ReadToEnd()
Dim connection As New SqlConnection(sqlConnectionString)
Dim server As New Server(New ServerConnection(connection))
server.ConnectionContext.ExecuteNonQuery(script)

它说:

'Type Server is not defined'

因此程序失败了。对于发生了什么的任何想法?我很确定一个相同的场景是在另一台计算机上进行测试项目,我不知道为什么这不起作用。感谢。

更新:

我尝试将具有此程序的计算机中的dll运行到此处,并且Smo包含Server,因此没有错误。但是当我构建程序时,它就像在运行时或其他东西中更改了dll,因为突然Server再次被标记为错误而且Smo不再包含它,为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

遗憾的是,仅仅通过复制DLL就无法部署SMO。我们在我们的应用程序(以及RMO和其他人)中都有这个,并且部署到生产是一件非常痛苦的事情。它需要运行适当的MS安装程序。

你可以从这里得到它们: http://www.microsoft.com/en-us/download/details.aspx?id=16978

或者,64位安装程序: http://go.microsoft.com/fwlink/?LinkID=188439&clcid=0x409