WIX安装程序在主要升级早期计划时保留配置文件

WIX安装程序在主要升级早期计划时保留配置文件,wix,installation,schedule,Wix,Installation,Schedule,我在我的WIX安装项目中使用主要的升级提前计划,如下所示 我更喜欢在升级时清除所有文件。 但是,我需要保留一个配置文件,并在升级时再次恢复 我不想更改此早期计划(Schedule=“afterInstallInitialize”),因为我将以其他问题结束。在上述早期计划中,是否有任何解决办法(自定义操作?)来保留配置文件?保留设置:这是什么类型的设置文件?它存放在哪里?在用户配置文件中,或者可能在共享的每台机器位置中?也许它是一个web应用程序,它是web.config文件 以前的答案:这个问

我在我的WIX安装项目中使用主要的升级提前计划,如下所示

我更喜欢在升级时清除所有文件。 但是,我需要保留一个配置文件,并在升级时再次恢复

我不想更改此早期计划(Schedule=“afterInstallInitialize”),因为我将以其他问题结束。在上述早期计划中,是否有任何解决办法(自定义操作?)来保留配置文件?

保留设置:这是什么类型的设置文件?它存放在哪里?在用户配置文件中,或者可能在共享的每台机器位置中?也许它是一个web应用程序,它是
web.config
文件

以前的答案:这个问题一直都会出现。以下是一些以前的答案,它们直接或模糊地联系在一起:

  • 设置保存
  • web.config
  • “文件覆盖”

现实世界的建议 永久组件:当您提前卸载并清除所有以前的文件时,真正有效的唯一选项是从“现在开始”设置配置文件永久。第一次更新不起作用,但对于以后的更新,该文件将保留在磁盘上

次要升级:如果使用次要升级而不是主要升级迁移到此新版本,则在升级过程中不会删除该文件,因为次要升级不会触发卸载,而是“就地”升级产品。将来处理更新可能是一个挑战,因为有些人可能没有升级到次要升级版本,但会寻求直接从版本1升级到版本3。如果他们这样做,设置文件将被版本1卸载自身清除。破坏演出的实际问题

自定义操作:许多人尝试在新更新期间使用自定义操作备份设置文件,然后在升级完成后恢复文件。容易出错,但可行。这里可以看到复杂性:

下载设置:我最喜欢的方法是更改要由应用程序本身从数据库或URL下载的设置文件。“云层设置”“我喜欢叫它。这就为可以跨计算机共享的设置提供了一个可靠的在线存储库(并不总是可取的)。如果从数据库检索,还可以为设置提供版本控制/修订和回滚


一些进一步的链接

  • 访问被拒绝
  • 易于浏览
  • 处理每个用户的文件
  • PhilDW

    • 我处理这个问题的方法是有两个文件。您会注意到app.config/web.config files appSettings元素有一个file属性。如果您将用户数据存储在那里,安装程序将永远不会知道它,也永远不会删除它或以其他方式损坏它

      web.config。。。永远不要修改这个。。。始终让安装程序覆盖/删除它。可以将其视为安装程序拥有的原始文件数据


      应用设置(连接字符串到)覆盖。。。把你的数据放在那里,你就不必做体操来保存数据。

      有一个更简单的方法来解决这个问题。那就是我添加的web.config链接?这不是100%确定的web.config,但可能是。这与在EXE文件中嵌入资源文件的方法相同吗?对不起,如果我误解了,我不知道这到底是怎么回事。嵌入式资源将静态链接到EXE,并在每次替换EXE时自动替换。在这个JavaScript时代,我们需要全新的想法来处理未版本文件,我的方法是将我的安装程序拥有的文件和我的用户拥有的文件分开,让安装程序总是覆盖它拥有的每一个文件,永远不要碰它没有的文件。在现代世界,这是通过集装箱化实现的。