Вопрос

Недавно мы перевели существующую проект разработки приложений ClickOnce из Visual Studio 2005 до VS 2010. Из-за проблемой обновления с Visual Studio 2010 мы должны были обновить свою базу данных SQL CE от V3.1 до V3.5.

Чтобы избежать миграции данных головных болей, мы копируем предыдущую базу данных пользователя в свою новую папку установки каждый раз, когда обновление ClickOnce опубликовано. Если есть какие-либо изменения БД, мы сценарием их в обработчик события ISFIRSTERUN APP.

Но сейчас, поскольку мы изменили версию базы данных и развернутые файлы SQL CE .dll, это означает, что все наши существующие клиенты будут в конечном итоге с неправильной версией базы данных.

У нас довольно большая пользовательская база, и мы сталкиваемся с проблемами, если нам потребуются все существующие пользователи, чтобы экспортировать свои данные, полностью удалять, затем переустановить новую версию.

Вопрос: Есть ли способ программично обновить существующую базу данных на месте?

СПАСИБО

Нет правильного решения

Другие советы

Вот две статьи, которые вы можете найти полезными. Первый - это, как включить SQLCE DLL с вашим развертыванием, а не развертывать его как предпосылку; Это дает вам полный контроль над той версией, которую вы работаете.

http://robindottet.wordpress.com/2010/02/28/how-to-deploy-the-sqlserver-compact-edition-software-locally/

Вторая статья состоит в том, как сохранить ваши данные от обновлений ClickOnce.

http://robindottet.wordpress.com/2009/08/19/ust-do-i-put-my-data-to-comeck-it-safe-from-clickonce-uppdates/

Конечно, используйте API обновления SQLCEENGINE, даже поддерживает на месте обновления: http://erkej.blogspot.com/2010/08/how-to-upgrade-version-3x-database-file.html.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top