在 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.Z
是 AssemblyInfo
版本号,与 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
作为用户 属性 存在仅用于管理此进程
我们正在制作一个主要是 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.Z
是 AssemblyInfo
版本号,与 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
作为用户 属性 存在仅用于管理此进程