【问题标题】:Managing User config in WIX migrations在 WIX 迁移中管理用户配置
【发布时间】:2020-06-10 03:54:02
【问题描述】:

我们正在制作一个主要是 Windows 服务 EXE 的项目。 我们正在使用 WIX(使用 heat)创建安装程序,该安装程序会创建相关文件并将 EXE 注册到 Windows 服务。

我们已经到了实现安装程序升级逻辑的地步,这主要是 JustWorks(TM) 通过在.wxs 文件中设置Product 标记的Version 属性。

我看不出如何管理的一个问题是该工具的配置文件。

该工具有各种配置设置,可以在工具内进行修改。 我们正在使用 ASP.NET,它内置了设置/配置管理,并且被更改的配置设置被声明为“用户”设置。当我们运行保存配置更改时,它会创建一个辅助配置文件,它会覆盖主配置文件中的默认设置。

主配置文件位于<installRoot>\MyCustomService.exe.config,辅助配置文件位于<complicated\Path>\vX.Y.Z\user.config。 其中X.Y.ZAssemblyInfo 版本号,它与WIX Version 号保持同步。

当我们安装新版本时,该工具开始寻找 user.config 的新路径......但找不到它。因此,从功能上讲,安装新版本会重置用户的所有配置 :( .


获取 WIX 升级安装以维护现有配置的适当方法是什么?

【问题讨论】:

    标签: wix config upgrade heat


    【解决方案1】:

    ASP.NET 配置支持使用.Upgrade() 方法将用户设置从一个版本升级到下一个版本。你最好使用它而不是在安装程序中管理它。

    这个问题有关于如何管理的详细信息:How do you keep user.config settings across different assembly versions in .net?

    但核心解决方案是:

    if (Settings.Default.UpgradeRequired)
    {
        Settings.Default.Upgrade();
        Settings.Default.UpgradeRequired = false;
        Settings.Default.Save();
    }
    

    已创建 UpdateRequired 作为仅用于管理此过程的用户属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多