Microsoft.SqlServer.Management.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 во время выполнения или чего-то еще, потому что внезапно Сервер снова помечается как ошибка, и Smo больше ее не содержит, почему это происходит?

1 ответ

К сожалению, SMO - это не то, что можно развернуть, просто скопировав библиотеки DLL. У нас это есть в нашем приложении (вместе с RMO и другими), и развертывание в производство - правильная задача. Нужно запустить соответствующие установщики MS.

Вы можете получить их здесь: http://www.microsoft.com/en-us/download/details.aspx?id=16978

Или 64-битный установщик: http://go.microsoft.com/fwlink/?LinkID=188439&clcid=0x409

Другие вопросы по тегам