在WIX迁移中管理用户配置

在WIX迁移中管理用户配置,wix,config,upgrade,heat,Wix,Config,Upgrade,Heat,我们正在制作一个主要是Windows服务EXE的项目。 我们正在使用WIX(带heat)创建一个安装程序,该安装程序创建相关文件并向Windows服务注册EXE 我们已经实现了安装程序升级逻辑,它主要通过在.wxs文件中设置产品标记的版本属性来工作(TM) 我看不出如何管理的一个问题是该工具的配置文件 该工具具有各种配置设置,可以从该工具中进行修改。 我们使用的是ASP.NET,它内置了设置/配置管理,更改的配置设置被声明为“用户”设置。当我们运行SavetheConfigChanges时,它会

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

我们已经实现了安装程序升级逻辑,它主要通过在
.wxs
文件中设置
产品
标记的
版本
属性来工作(TM)

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

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

主配置文件位于
\MyCustomService.exe.config
,次配置文件位于
\vX.Y.Z\user.config
。 其中
X.Y.Z
是与WIX
版本保持同步的
AssemblyInfo
版本号

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



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

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

此问题详细介绍了如何管理:

但核心解决方案是:

if(设置。默认值。需要升级)
{
Settings.Default.Upgrade();
Settings.Default.UpgradeRequired=false;
Settings.Default.Save();
}
已将
UpdateRequired
创建为仅用于管理此流程的用户属性