是的,我确实添加了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不再包含它,为什么会发生这种情况?
答案 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