0

構成パラメーターを保存する C# の設定ファイルがあります。そこで、ソリューションをビルドしてシステムにインストールします。アプリケーションは、次のすべての構成パラメータで構成される XML ファイル user.config を作成します。

%userprofile%\appdata\local or %userprofile%\Local Settings\

アプリケーションを介して構成を変更し、コマンドを発行して保存しました

Properties.Settings.Default.Save();

アプリケーションを再起動すると、設定は更新された値ではなくデフォルト値で構成されます。

ここで何か不足している場合はどうすればよいですか。

ここに画像の説明を入力

4

2 に答える 2

2

%userprofile%\appdata\local または %userprofile%\Local Settings\

これは質問について根本的に間違っていることです。これは user.config ファイルが保存されている場所ではありません。LocalFileSettingsProvider クラス (既定の設定プロバイダー クラス) は、user.config ファイルを、C:\Users\username\AppData\Local\WindowsFormsApplication1\WindowsFormsApplication1._Url_twchbbo4atpsvjpauzkgkvesu5bh2aul\1.0.0.0 のような、わかりにくい名前のディレクトリに保存します。

名前のtwchbbo4atpsvjpauzkgkvesu5bh2aul一部は、プログラムのインストール場所、プログラム名、[AssemblyCompany] および [AssemblyProduct] を組み合わせたハッシュ関数によって生成され、ディレクトリが一意であり、別のプログラムの user.config と競合しないようにします。[AssemblyVersion] を追加して、異なるバージョンのプログラムが衝突しないようにします。

最初に適切な user.config ファイルを見つけて、この問題を診断する必要があります。%appdata%\Local または %appdata%\Roaming ディレクトリから開始します。Save() メソッドが実際に保存されることを確認してください。設定に別の値が割り当てられていない場合は保存されません。SysInternals の ProcMon ユーティリティを使用して、すべての仮定を再確認します。プログラムがファイルにアクセスしていることをトレースで確認できます。

于 2013-01-14T13:31:48.243 に答える
1

設定の範囲は何ですか?このようなアプリケーションスコープの設定をコードから変更することはできません。設定デザイナーを見てください。 ここに画像の説明を入力してください

設定スコープの詳細については、こちらをご覧ください。

于 2013-01-14T12:10:57.537 に答える