我们最近将现有的Clickonce应用开发项目从Visual Studio 2005迁移到了VS 2010。 由于Visual Studio 2010的升级问题,我们必须将其SQL CE数据库从v3.1升级到v3.5。
为避免数据迁移问题,我们每次发布Clickonce更新时都会将用户以前的数据库复制到新的安装文件夹中。如果有任何数据库更改,我们将它们编入应用程序的IsFirstRun事件处理程序。
但是现在,由于我们已经更改了数据库版本和部署的SQL CE .dll文件,这意味着我们所有现有客户端最终都会使用错误的数据库版本。
我们拥有相当庞大的用户群,如果我们要求所有现有用户导出数据,完全卸载,然后重新安装新版本,我们就会遇到问题。
问题:有没有办法以编程方式就地升级现有数据库?
感谢
答案 0 :(得分:1)
以下是您可能会发现有用的两篇文章。第一个是如何在部署中包含SQLCE dll而不是将其作为先决条件部署;这使您可以完全控制正在运行的版本。
第二篇文章是关于如何使您的数据远离ClickOnce更新。
答案 1 :(得分:0)
当然,使用SqlCeEngine升级API,甚至支持就地升级:http://erikej.blogspot.com/2010/08/how-to-upgrade-version-3x-database-file.html