在 WIX 迁移中管理用户配置

Managing User config in WIX migrations

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

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

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

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

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

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


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

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 作为用户 属性 存在仅用于管理此进程