Обновление приложения для использования SQL Server 2016 с SQL Server 2008

У меня есть 32-разрядное приложение, разработанное с использованием SQL Server 2008 Express SP2, поскольку мы переходим на Windows 10, мы будем использовать SQL Server 2016 Express, и при запуске приложения я получаю следующие ошибки:

Message:Could not load file or assembly 'Microsoft.SqlServer.ConnectionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.

Я исправил эти ошибки, установив на свой компьютер типы CLR и SMO ​​для 32-разрядной версии 2008 года. Я также заметил в Visual Studio, что мои ссылки на Microsoft.SqlServer.ConnectionInfo, Microsoft.SqlServer.Management.Sdk.Sfc и Microsoft.SqlServer.Smo обновили свои пути с помощью нового SQL Server (до установки SMO ​​2008), но я все еще получил эту ошибку.

Что я могу сделать в приложении, чтобы избежать этой ошибки? Это просто обновление ссылок?


person nessa    schedule 24.01.2018    source источник
comment
Если вы хотите работать с Sql Server 2016, почему вы устанавливаете SMO для 2008? Я бы установил версию 2016 года.microsoft.com/en- нас/download/details.aspx?id=52676   -  person Steve    schedule 25.01.2018
comment
@Steve, проект ссылается на версию 10 .dll, а 2016 год - на версию 14.   -  person nessa    schedule 25.01.2018
comment
@nessa, вам нужно перенести свое приложение, а не просто запустить его как есть в новой ОС. В частности, 32-битная версия мертва - вы должны компилировать и запускать 64-битные приложения, которые используют соответствующие библиотеки для 2016 года и любую версию .Net. И да, это означает, что вам может потребоваться рефакторинг кода в вашем приложении. Если вы этого не сделаете, вы на самом деле не обновите свое приложение. Учитесь на проблемах, с которыми вы сталкиваетесь - существуют пределы обратной совместимости. Десять лет слишком долго ждать.   -  person SMor    schedule 25.01.2018
comment
@SMor Я согласен, я поработаю над этим, мне интересно, есть ли способ работать с несколькими версиями сервера sql в одном приложении   -  person nessa    schedule 25.01.2018


Ответы (1)


Ниже существует "C:\WINDOWS\assembly\"?

Microsoft.SqlServer.ConnectionInfo.dll
Microsoft.SqlServer.ConnectionInfoExtended.dll
Microsoft.SqlServer.PolicyEnum.dll
Microsoft.SqlServer.RegSvrEnum.dll
Microsoft.SqlServer.ServiceBrokerEnum.dll
Microsoft.SqlServer.Smo.dll
Microsoft.SqlServer.SmoExtended.dll

попробуй это

gacutil /i "C:\Program Files\Microsoft SQL 
Server\120\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfo.dll"

а также

regasm "C:\Program Files\Microsoft SQL 
Server\120\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfo.dll"
person Hasan Jafarov    schedule 24.01.2018