在自动更新C#期间保留现有文件

时间:2015-05-25 14:15:12

标签: c# compact-framework

我已在windows mobile app中使用c#开发了compact framework 3.5。我实现了这样的自动升级功能,如果发布新版本,我的应用程序下载新版本,卸载现有版本并安装新版本。这很好。

我需要在自动升级期间完成以下操作, 安装新版本后,我需要从旧版本应用程序中保留一些用户修改的xml文件,并在新安装的应用程序中替换相同的文件。我需要在新安装的版本中保留现有的设置xml文件。如何在compact framework 3.5

中实现此目的

1 个答案:

答案 0 :(得分:1)

卸载CAB后,将删除安装的所有文件。有三种通用方法可以规避app数据文件的行为:

  1. 让您的应用首先创建数据文件,而不是CAB文件。如果CAB没有放置文件,它就不会删除它。这是不需要种子数据的配置和数据库的常用机制。
  2. 重命名或移动要保留的文件。如果CAB安装程序无法找到文件,则无法将其删除。您可以使用" fake"运送您的数据文件或您要保留的任何文件。名称,当应用程序运行时,查找伪命名文件并将其重命名为您想要的名称。如果您想通过某些应用程序逻辑,这还提供了实际更新文件的功能。
  3. 创建custom setup DLL(在C中)并在Uninstall_Init函数中执行某些操作以移动或阻止删除,然后将该DLL包含在CAB文件中。