如何在安装时更改.NET应用程序/用户设置?

时间:2009-10-19 23:37:33

标签: .net windows-services installer app-config application-settings

在Windows服务项目中,使用Project Installer我尝试了以下操作:

[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文件安装后,仍然存在较旧的值。通常的[userfolder] \ AppData \ Local

中没有.​​config文件

对我而言,在安装时定义此变量非常重要,因为我将从安装项目中的用户输入中接收其值。此处的常量值仅用于测试目的。

1 个答案:

答案 0 :(得分:1)

该框架不允许您在安装时更改设置,因为应用程序设置是只读的,并且在安装并运行服务之前没有用户上下文(在用户名下)。

我找到的唯一解决方案是使用配置文件的纯XML操作来更改设置。我重写了Install方法并对文件本身进行了更改。