Я пытаюсь добавить поддержку SQL2008 в приложение .NET 2.0. Однако мое уникальное утверждение заключается в том, что некоторые пользователи все еще будут использовать SQL2005, и я не хочу требовать от них установки клиентских компонентов SQL2008.
Фактический набор DLL, которые мне нужны для SQL2008, отличается от SQL2005. Код может остаться прежним.
Внизу, мне нужен способ в VS2005 (или ручное редактирование файла сборки), чтобы сказать:
Если у пользователя есть DLL_1 v2, DLL_2 v2 и DLL_3 v2, используйте их. Если нет, используйте DLL_1 v1 и DLL_2 v1.
Я рассмотрю использование отражения для загрузки библиотек DLL. Похоже, для меня это единственный вариант, кроме требования клиентских компонентов SQL 2008.
Что касается перераспределения библиотек DLL, я прочитал лицензию. Там есть пара сомнительных терминов, которые применимы к нам (например, для размещенного программного обеспечения). Кроме того, это еще более сложная проблема, потому что данные наших клиентов очень чувствительны, поэтому они проходят обширные процессы утверждения, чтобы разрешить установку чего-либо, например, DLL, которые мы включаем.
Спасибо за помощь!
Спасибо за идеи! Однако мы все еще не совсем там ...
Нет, пользователь не выбирает, какую версию БД он устанавливает. Предполагается разрешить SQL2005 и / или SQL2008 даже в одной и той же установке. Например, у нас есть приложение администрирования, которое позволяет пользователям управлять экземплярами базы данных на разных серверах SQL.
Я понимаю, что мы могли бы добавить диалоговое окно, чтобы выбрать, нужна ли поддержка SQL2008. Однако это расширило бы нашу тестовую матрицу, чего мы и стараемся избегать.
Я считаю, что мне нужно напрямую ссылаться на DLL. Я делаю гораздо больше с базами данных, чем просто подключаюсь и запрашиваю.
Мне нужны следующие DLL:
- Microsoft.SqlServer.ConnectionInfo
- Microsoft.SqlServer.Management.Sdk.Sfc
- Microsoft.SqlServer.Smo
- Microsoft.SqlServer.SmoExtended
- Microsoft.SqlServer.SqlEnum
Есть еще идеи, мысли?