在客户端维护数据库

时间:2019-04-22 13:00:44

标签: c# visual-studio sqlite wix wix3

客户端:我有一个桌面应用程序。该应用程序还具有一个Sqlite文件。我是使用WIX Toolset在客户端计算机上安装的。当我在应用程序中输入一些数据时,它将保存在数据库文件中。

服务器端::我对应用程序进行了一些更改,例如在数据库文件的表中添加了额外的列。

我还从服务器端安装了新版本的应用程序。

问题::从客户端打开sqlite文件后,以前的所有数据都会丢失。我只得到一张空白表。

问题:是否可以在安装升级版应用程序后维护数据库中存储的先前数据以及新更改?

1 个答案:

答案 0 :(得分:1)

这是MSI的一个常见问题,通常会用XML文件表示自己,但这是同一回事。

MSI可以覆盖或不覆盖文件,无论哪种方式都会出错。您希望更改架构,但又不想丢失用户数据,对于MSI,文件是原子的。

最好的办法是将MSI安装的文件用作种子/模型,在应用程序运行时将其克隆到另一个目录,并将用户数据存储在该目录中。在后续登录时,检查种子数据库中的架构更改,并根据此更改以编程方式迁移克隆的数据库。

相关问题