3

MSI インストーラーを使用した WPF アプリケーションのインストール中に、MyApp.exe.config ファイルの userSettings セクション (Properties.MyApp.Default) を変更しようとしています。

私は基本的にこの優れた記事のように実装しました: http://raquila.com/software/configure-app-config-application-settings-during-msi-install/

違いは、appSettings ではなく userSettings セクションを編集していることです。

問題は、コードは正常に実行されますが、設定が保存されないことです。インストール後、構成ファイルには、開発環境で使用する古い設定が含まれています。また、Install(System.Collections.IDictionary stateSaver) の代わりに OnAfterInstall(System.Collections.IDictionary stateSaver) をオーバーライドしようとしましたが、違いはありません。

構成値を変更する必要があるコードは次のとおりです。

protected override void OnAfterInstall(IDictionary savedState)
{
    base.OnAfterInstall(savedState);

    string targetDirectory = Context.Parameters["targetdir"];
    string tvdbAccountID = Context.Parameters["TVDBACCID"];
    // read other config elements...

    Properties.Settings.Default.Tvdb_AccountIdentifier = tvdbAccountID;
    // set other config elements

    Properties.Settings.Default.Save();
}

これらの変更を永続化する方法はありますか? 私はすでに Wix について読みましたが、それはやり過ぎのように思えます。

前もって感謝します!

4

1 に答える 1

0

ユーザー設定は現在のユーザーのローカル フォルダーに保存され、通常は C:\Users\Username\AppData\Local\Manufacturer\ApplicationName\Application.exe_StrongName\VersionNumber\user.settings のようになります。アプリケーションのバージョンによって場所が変わることに注意してください。

exe.config の UserSettings セクションには、新しいユーザーのデフォルト値が含まれています。

詳細については、この質問を確認してください。

于 2010-06-29T13:31:16.617 に答える