在WIX迁移中管理用户配置

Managing User config in WIX migrations

我们正在制作一个主要是Windows Service EXE的项目。
我们正在使用WIX(带有heat)来创建安装程序,该安装程序将创建相关文件并在Windows Services中注册EXE。

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

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

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

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

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

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


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

此问题详细说明了如何管理该问题:如何在.net中的不同程序集版本之间保留user.config设置?

但核心解决方案是:

1
2
3
4
5
6
if (Settings.Default.UpgradeRequired)
{
    Settings.Default.Upgrade();
    Settings.Default.UpgradeRequired = false;
    Settings.Default.Save();
}

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