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 に答える