如何改变上安装.NET应用/用户设置?
-
22-09-2019 - |
题
在一个Windows服务项目,与项目安装我试过如下:
[RunInstaller(true)]
public partial class ProjectInstaller : Installer
{
public ProjectInstaller()
{
InitializeComponent();
}
protected override void OnBeforeInstall(System.Collections.IDictionary savedState)
{
base.OnBeforeInstall(savedState);
Settings.Default.ASetting = "aValue";
Settings.Default.Save();
}
protected override void OnAfterInstall(System.Collections.IDictionary savedState)
{
base.OnAfterInstall(savedState);
Settings.Default.ASetting = "aValue";
Settings.Default.Save();
}
}
但之后当我检查config文件的安装,一个旧的价值仍然存在。有在通常的没有.config文件[userfolder] \应用程序数据\本地
有关我是非常重要的,以限定在安装时该变量,因为我将从安装项目的用户输入接收它的值。这里的恒定值仅用于测试目的。
解决方案
该框架将不会允许你改变而安装的设置,因为应用程序设置为只读,并且没有用户上下文,直到服务安装并运行(用户名之下)。
我发现的唯一的解决办法是改变使用配置文件的纯XML操作的设置。我覆盖安装方法和更改文件本身。
不隶属于 StackOverflow