我在WIX设置项目中使用了重大升级早期计划,如下所示。
我更喜欢在升级时清除所有文件。 但是,我需要保留一个配置文件,并在升级时再次还原。
我不想更改此早期计划(Schedule =“ afterInstallInitialize”),因为我将遇到其他问题。是否有任何变通办法(自定义操作?)在上述早期计划中保留配置文件?
答案 0 :(得分:0)
保存设置 :这是哪种设置文件?它存储在哪里?在用户个人资料中还是在每台计算机的共享位置中?也许它是一个网络应用程序,并且是 web.config
文件?
上一个答案 :这个问题一直出现。以下是一些直接相关或更模糊的答案:
永久组件 :当尽早卸载并清除所有以前的文件时,唯一有效的选择是设置配置文件永久< / strong>。它不适用于第一次更新,但对于将来的更新,文件将保留在磁盘上。
次要升级 :如果您使用次要升级而不是主要升级迁移到此新版本,则在升级期间不会删除文件,因为次要版本升级不会触发卸载,而是“就地”升级产品。由于某些人可能尚未升级到次要升级版本,但将来会寻求挑战,因为有些人可能尚未升级到次要升级版本,而是会寻求直接从版本1升级到版本3。如果这样做,设置文件将被版本清除掉。 1自行卸载。破坏演出的实际问题。
自定义操作 :许多人尝试在新更新期间使用自定义操作备份设置文件,然后在升级完成后还原文件。容易出错,但可行。可以在这里看到复杂性:Wix Tools update uses old custom actions。
下载设置 :我最喜欢的方法是更改设置文件,以从应用程序本身从数据库或URL下载。 “ 云设置 ”,我喜欢称之为。这样就产生了一个可靠的在线存储库,可以在计算机之间共享设置(并不总是很理想)。如果您从数据库中检索,还可以提供版本控制/修订和设置回滚。
一些其他链接 :
答案 1 :(得分:0)
我处理此问题的方法是拥有两个文件。您会注意到app.config / web.config文件appSettings元素具有文件属性。如果您将用户数据存储在此处,则安装程序将永远不会知道它,也不会删除它或以其他方式损害它。
web.config ...永远不要修改它...总是让安装程序覆盖/删除它。将其视为库存|安装程序拥有的原始文件数据。
appsettings(连接字符串)将覆盖...将您的数据放到那里,您将不必进行体操就可以保留数据。