Как изменить настройки приложения/пользователя .NET при установке?

StackOverflow https://stackoverflow.com/questions/1591725

Вопрос

В проекте службы 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.

Для меня важно определить эту переменную во время установки, поскольку я получу ее значение из пользовательского ввода в проекте установки.Постоянное значение здесь используется только в целях тестирования.

Это было полезно?

Решение

Платформа не позволит вам изменить настройки во время установки, поскольку настройки приложения доступны только для чтения и контекст пользователя отсутствует до тех пор, пока служба не будет установлена ​​и запущена (под именем пользователя).

Единственное решение, которое я нашел, — это изменить настройки, используя простую XML-манипуляцию файла конфигурации.Я переопределяю метод Install и вношу изменения в сам файл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top