0

ユーザー設定の app.config ファイルを読み書きしようとしています。confige ファイルを操作するためのコードのスニペットを見つけました。最終的にコンパイルして実行しましたが、App.config ファイルに対して何もしていないようです。

コードは次のとおりです。

Method MainForm1.Button1.Click(sender: System.Object; e: System.EventArgs);
var
config  : System.Configuration.Configuration;
begin
     config:=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
     config.AppSettings.Settings.Add('PreferenceToRemember','value1');
     config.Save(ConfigurationSaveMode.Modified);
     ConfigurationManager.RefreshSection('appSettings');
end;

エラーなしでコンパイルしていますが、何かを行っているかどうかはわかりません。

コードに何か問題がありますか?セクションの書き込み/読み取りと、キー/値の書き込み/読み取りができる必要があります。前もって感謝します。

更新: ConfigurationManager を使用する代わりに、単に Properties.Settings.Default を使用します。ただし、プログラムはエラーなしで準拠しており、コードは単純に見えますが、書き込みと読み取りに少し問題があります。

コード内から Properties.Settings.Default をどのように読み書きしますか?

4

1 に答える 1

1

たぶん、あなたは間違ったファイルを見ていますか?ソリューションにある app.config は、bin/Debug または bin/Release フォルダーの YourProgramFile.exe.config にコピーされます。プログラムを実行すると、ソリューションの app.config ファイルではなく、このファイルが更新されます。

次に、アプリケーション フォルダーの書き込み権限も確認する必要があります。通常 (Win Vista、Win 7) アプリケーションを実行するユーザーには、アプリケーションが存在する Program Files フォルダーへの書き込み権限がないため、.config の更新は、書き込み権限がないために失敗する可能性が高くなります。これは、Linux/Unix システムではさらに当てはまります。

書き込む必要がある要素を分離し、追加の構成ファイルをユーザー固有のフォルダーに書き込むようにしてください。最初は通常のアプリケーション構成からデフォルトを取得し、ユーザー固有の構成ファイルを更新するだけで済みます。この方法では、ファイルのアクセス許可に妨げられず、すべてのユーザーが設定を明確に更新できます。

于 2011-08-17T06:05:58.177 に答える