0

在 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 文件时,旧值仍然存在。通常的 [userfolder]\AppData\Local 中没有 .config 文件

对我来说,在安装时定义这个变量很重要,因为我将从安装项目中的用户输入接收它的值。此处的常数值仅用于测试目的。

4

1 回答 1

1

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

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

于 2009-10-20T01:50:37.580 回答