我们有一个包含3个主要组件的产品
1)客户端应用程序 2)网络服务器 3)数据集,主要包含(只读 - 从客户的角度来看)存储在SQLite DB中的BLOB字段中的文档
客户端应用程序可以访问直接存储在该计算机上的数据集(许多用户位于非联网的笔记本电脑上)或通过网络服务器。
数据需要不时更新 - 整个数据集可以是几GB,因此对于更新,我们希望只发送那些新的或已经修改过的文档。在某种意义上的补丁。我们的客户倾向于将MSI纳入他们自己的分销策略中。有些人坚持不接受任何其他事情。
通过MSI更新SQLite数据库是否可行(没有完全覆盖数据库文件)?
我有两个策略,但都有缺点
1)MSI将一些文件安装到客户机器(工作站或服务器)上,当客户端或服务器软件检测到它们时,它会运行某种数据库合并。
2)MSI访问自定义DLL中的函数(我不是MSI专家,因此我甚至不知道这是否可行)将新内容合并到数据库中。我怀疑自定义DLL确实打破了MSI重新加密的程度。
这远非我的专业知识,所以有人能提出可能的解决方案吗?
感谢您的时间