0

我已经使用 Visual Studio 安装程序创建了我的项目的安装程序。我的产品会经常更新。所以我需要在一段时间内提供更新。我可以通过更改产品代码并保持旧升级代码不变来创建版本。

但问题是,

我有一个安装在我的应用程序文件夹(安装文件夹)中的 SQLite 数据库。

在我的下一个更新版本中,数据库的架构可能会发生一些变化。但是即使更新了数据库并且稍微更改了架构,最新版本也需要先前版本存储的数据。

我的想法是在安装下一个版本时备份以前的版本。一旦安装了最新版本,修改后的数据库应该从备份文件夹中的前一个数据库中获取数据,并且应该进行更新。如果在安装较新版本时出现异常,应回滚安装过程并保持旧版本不变。在这种情况下,VSI 中的自定义操作可能会有所帮助。

有没有办法实现它。?如果有任何其他方法可以解决这个问题,我想知道它。

4

1 回答 1

1

所以我需要在一段时间内提供更新。

更新现有应用程序的最佳解决方案是使用OneClick,这是一项 Microsoft 技术,您可以使用它以更优雅的方式将更新推送到客户端机器。

安装最新版本后,修改后的数据库应从备份文件夹中的先前数据库中获取数据,并应进行更新。

我同意如果在更新过程中出现任何问题并且您想恢复所有内容,您将必须始终进行数据库备份。但是您将如何从备份数据库中获取数据并更新新数据库?您是否要读取每个表中的数据并插入到新的数据库表中?

我建议您在应用程序更新发生时不要delta script复制新的数据库模式,而只是包含在更新包中。此增量可能只是列大小或数据类型更改等。

你要做的是,

  1. 进行数据库备份
  2. 在现有数据库上执行 delta 脚本,这会将数据库升级到新版本。

在这个方法中,如果您按照您提到的方法(复制新数据库并从旧数据库获取数据),您将摆脱许多必须处理的复杂性

于 2013-10-01T09:19:42.397 回答