3

次のコードを使用して、実行時に appconfig ファイルを更新しようとしています。エラーは発生しませんが、構成ファイルが更新されません。

System.Configuration.Configuration config =
    ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
string oldValue = config.AppSettings.Settings["Username"].Value;
config.AppSettings.Settings["Username"].Value = "NewValue";
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
4

4 に答える 4

1

app.config ファイルへの書き込みアクセス権がある限り、次のように動作します。

// To Save
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["Username"].Value = "NewValue";
config.AppSettings.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Modified);

// To Refresh
ConfigurationManager.RefreshSection("appSettings");
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
于 2013-03-01T23:30:52.520 に答える
1

構成を更新することはできません。削除してから、再度追加する必要があります。これは、Visual Studio を介したデバッグ中も含めて、私にとってはうまくいきました。

config.AppSettings.Settings.Remove("Username");
config.AppSettings.Settings.Add("Username", "NewValue");
config.Save(ConfigurationSaveMode.Modified);
于 2013-05-24T17:12:07.897 に答える
0

構成を更新する必要があるときは、常に次を使用する必要があります。

config.AppSettings.SectionInformation.ForceSave = true;
//Save config
//Refresh Config section

そうしないと、構成ファイルが更新されません。

また、これを Visual Studio で実行していますか? Visual Studio からデバッグしている場合、bin フォルダーにコピーが作成されるため、実際のプロジェクトでは、bin\debug フォルダー内の構成ファイルを見ない限り、構成への変更は表示されません。

于 2013-02-28T15:02:06.540 に答える