11

将来の使用のために、構成ファイルにいくつかの設定を保存したいと考えています。すべてのチュートリアルで見られる通常のコードを使用しようとしています -

 Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
 config.AppSettings.Settings["username"].Value = m_strUserName;

 // I also tried - 
 //config.AppSettings.Settings.Remove("username");
 //config.AppSettings.Settings.Add("username", m_strUserName);

 config.Save(ConfigurationSaveMode.Modified);
 ConfigurationManager.RefreshSection("appSettings");

今-実行時に確認できます-「デバッグ」フォルダーのファイル「...vshost.exe.config」が変更され、アプリケーションを閉じるとナット-すべての変更が削除されます。私に何ができる?

4

2 に答える 2

29

通常の exe の構成ファイルを使用してテストするには、プロジェクト プロパティ メニューの [デバッグ] タブにある [Visual Studio ホスティング プロセスを有効にする] チェック ボックスをオフにします。これにより、Visual Studio はvshost.exeファイルを使用して起動しなくなり、正しい構成ファイルが使用されます。

ここに画像の説明を入力

于 2012-07-15T08:26:24.230 に答える
10

アプリケーションをエンド ユーザーに展開する場合、vshost.config はありません。
変更は実際の exe.config に適用されます。したがって、これについて心配する必要はありません。

デバッグ セッションでアプリケーションをビルドすると、プロジェクトに存在する app.config ファイルが出力ディレクトリにコピーされます。次に、この構成ファイルも vshost.config にコピーされます。このように、app.config の内容は、vshost.exe.config のデバッグ セッション中に行われたすべての変更を上書きします。

ただし、この種の情報をアプリケーション構成に書き込むことは悪い習慣です。構成ファイルは、通常、アプリケーションの有効期間中に変更されない永続的な構成を保存するためにのみ使用する必要があります。たとえば、接続設定は、通常は変更せず、ハードコーディングしたくないため、そこに保存するのに有効な情報です。

ユーザー名などの設定では、代わりに user.config を使用する必要があります。この構成はユーザーごと/アプリごとであり、読み取り/書き込みアクセスを許可します。

于 2012-07-15T08:21:10.597 に答える