2017-02-22 2 views
0

App.configファイルを含むアプリケーションを作成し、セットアップウィザードプロジェクトを使用してWindowsインストーラを作成した。インストールされたアプリケーションを実行すると、完全に構成を読み取ることができますが、構成を変更して保存すると、アプリケーションがクラッシュするだけです。ここでApp.configを読むのはうまくいくが、アプリケーションをクラッシュさせて保存する。

は私のコードです:

Configuration applicationConfiguration = 
    ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

// Reading works just fine. 
LogFilePath = applicationConfiguration.AppSettings.Settings["LogFilePath"].Value; 

LogFilePath = "some string here"; 

applicationConfiguration.AppSettings.Settings["LogFilePath"].Value = LogFilePath; 

// But saving it crashes the application. Only the .Save() line that making it crashed. 
applicationConfiguration.Save(ConfigurationSaveMode.Modified); 
ConfigurationManager.RefreshSection("appSettings"); 

ここで間違っているものを任意のアイデア?原因ここdocummentationへ

+1

"クラッシュ"を定義します。あなたは例外を見ていますか?もしそうなら、メッセージは何ですか? –

答えて

0

:あなたのマップが読み取り許可している実行されますが、リソースの設定オブジェクトを取得するには(ファイルやディレクトリにする)

を書き込み権限を持っていないhttps://msdn.microsoft.com/en-us/library/ms134265(v=vs.110).aspxおそらくユーザー、 あなたコードには設定を継承するすべての構成ファイル に対する読み取りアクセス権が必要です。構成ファイルを更新するには、 コードに、 構成ファイルとそれが存在するディレクトリの両方に対する書き込み権限がさらに必要です。

+0

ああ、実際に私はそれを可能性の1つと推測しています。そして、はい、あなたは正しいです、私がちょうどそれを表示するために作成したメッセージボックスから来る例外を見たので、あなたは正しいです: '設定ファイルのロード中にエラーが発生しました:パス '一時ファイルパス'へのアクセスが拒否されました。 (コンフィギュレーションファイルのフルパス) ' –

+0

最も簡単な解決策が最後に考えられます。フォームデータがモデルにバインドされなかった理由を検索するのに2時間を費やしています。最後に、セッターメソッドを定義するのを忘れてしまったので、どのように感じるのか分かります。 – Misiakw

関連する問題