Question

Dans un projet de service Windows, avec un programme d'installation de projet j'essayé ce qui suit:

[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();
    }
}

Mais après l'installation quand je vérifie le fichier .config, une ancienne valeur est toujours là. Il n'y avait pas de fichier .config dans l'habituel [userfolder] \ AppData \ Local

Pour moi est important de définir cette variable dans le temps d'installation puisque je vais recevoir la valeur d'une entrée d'utilisateur dans le projet d'installation. La valeur constante est utilisée ici uniquement à des fins de test.

Était-ce utile?

La solution

Le cadre ne permet pas de modifier les paramètres lors de l'installation, étant donné que les paramètres d'application sont en lecture seule et il n'y a pas de contexte de l'utilisateur jusqu'à ce que le service est installé et en cours d'exécution (sous un nom d'utilisateur).

La seule solution que j'ai trouvé est de changer les paramètres à l'aide de manipulation XML simple du fichier de configuration. Je passer outre la méthode d'installation et de modifier le fichier lui-même.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top