在一个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操作的设置。我覆盖安装方法和更改文件本身。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top