【问题标题】:How do I alter a .NET application/user settings on installation?如何在安装时更改 .NET 应用程序/用户设置?
【发布时间】:2010-12-08 04:23:25
【问题描述】:

在一个 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 文件

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我宁愿写到 Windows 注册表也不愿照你说的做。除非我找到可以复制/粘贴的工作代码。
    猜你喜欢
    • 1970-01-01
    • 2010-10-06
    • 2011-01-31
    • 2011-07-31
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多