0

App.Configを使用するac#.netアプリケーションを作成しました。もちろん、デバッグ中はすべて正常に機能します。ファイルにアクセスして読み取りと書き込みを行うことができます。

しかし、アプリケーションのインストーラーを作成すると、書き込み部分が機能しなくなりました。

これは、アプリケーションがプログラムファイルにインストールされていたためです。そして、あなたはプログラムファイルフォルダに書き込むことができません...

app.configをdeAppDataフォルダーに配置するための解決策を考えましたが、機能させることができません。

私が知りたいのは、インストーラーにファイルを正しい場所に配置するように指示する方法と、ファイルをその場所に書き込むための正しい関数を作成する方法です。

これが私がこれまでに持っていたものです:

 public static void WriteValue(string key, string value)
 {
    string configPath = System.Environment.GetFolderPath(
                                                         Environment.SpecialFolder.ApplicationData) + 
                        "\\Application\\app.config";

    ExeConfigurationFileMap map = new ExeConfigurationFileMap(configPath);

    // Open App.Config of executable
    Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, 
                                                                           ConfigurationUserLevel.None);

    // Add an Application Setting.
    config.AppSettings.Settings.Remove(key);
    config.AppSettings.Settings.Add(key, value);
    // Save the configuration file.
    config.Save(ConfigurationSaveMode.Modified);
    // Force a reload of a changed section.
    ConfigurationManager.RefreshSection("appSettings");
}

よろしくお願いします

4

1 に答える 1

1

このファイルApp.configは、開発プロセス中に使用される名前であり、デバッグ中にVSはそれを適切に読み取ります。

ただし、実行可能ファイルYourProgram.exeをスタジオの外で実行すると、次の名前のファイルが検索されますYourProgram.exe.config

それが役に立てば幸い。

于 2013-01-29T07:59:57.650 に答える