2012-09-04 27 views
5

私のapp.configでカスタム設定セクションを使用しようとすると、次の問題が発生します。カスタム設定セクションを保存するとSystem.UnauthorizedAccessExceptionが発生する

:私は、設定ファイルを保存するたびに、私はこの例外を取得し、今

<CustomConfigSection> 
    <BackupLocations> 
     <clear /> 
     <add path="C:\Users\Marcel\Documents\" /> 
    </BackupLocations> 
</CustomConfigSection> 

:私は、私はそうのように私のプログラムでバックアップしたいフォルダの選択を追跡するために、カスタム設定セクションを使用します

System.Configuration.ConfigurationErrorsException:エラーが発生しました 構成ファイルをロードしています。パス:C:\ Program Files (x86)\ Backup Solutions \ uqhuxi1j.tmpへのアクセスが拒否されました。 (C:\プログラムファイル(x86の)\バックアップソリューション BS.exe.Config \)---> System.UnauthorizedAccessExceptionは

私が使用するコードは次のとおりです。

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
CustomConfigSection section = (CustomConfigSection)config.GetSection("CustomConfigSection"); 

section.BackupLocations.Add(element); 

section.SectionInformation.ForceSave = true; 
config.Save(ConfigurationSaveMode.Full); 

この作品PCに複数のアカウントが設定されている場合にのみ発生するので、UAC /権限の問題です。通常のユーザーでは、そのフォルダに対する適切な書き込み権限がありません。私の質問(複数可)のために今

がどのようにユーザー設定がのAppDataとカスタムconfigセクションに保存されます来るAPPLICATIONFOLDER/exe.configに保存しようとしていますか?カスタムセクションをAppData設定ファイルに保存するにはどうすればよいですか?

権限にかかわらず、すべてのユーザーのデータを保存できる必要があります。だから私はカスタム設定のセクションを使用してこれを達成することができますか、別のアプローチが必要ですか?私はカスタムセクションをAppData設定ファイルに保存することをお勧めします。インストーラでトリックを使用してアプリケーションフォルダにアクセス許可を調整して書き込みを許可したくありません。 私のプログラムを起動するときには、何よりも私は管理者権限を必要としたくありません!

ご返信いただきありがとうございます。

答えて

0

良い夜の眠りの後、私はすでに自分自身で答えを見つけたようです。

configは、バージョンとユーザー固有のデータのためにAppDataディレクトリに保存されています。私がやっていたことは実際にはexe.configを直接開いて、ユーザースコープの設定に関しては何もしませんでした。私のプログラムの現在のバージョンのAppData設定ファイルに書き込むことはもちろんです。私がこれを理解したとき、私はgoogleで何を探すべきか分かっていました。

は、私はこれらの記事を見つけました:実験すると、そのプロジェクトのソースファイルをダウンロードする

Windows Forms - Creating and Persisting Custom User Settings in C#

Windows Forms - Creating and Persisting Custom User Settings in C# - Part 2

は多くのことを私を助け、まさに私が必要なものを私に提供しました。だから基本的に私は何をしたいのかに間違った機能を実装していました。

読者に感謝し、ちょうど正しい方向に私を送ってくれたMr. Ritchieに感謝します。

0

ユーザースコープの設定は、ユーザーがそこに書き込む権限を持っているため、AppDataに保存されます。ユーザーにはプログラムファイルへの書き込み権限がありません。ユーザースコープの設定を使用してAppDataに保存します。詳細については、http://msdn.microsoft.com/en-us/library/a65txexh(v=vs.100).aspxを参照してください。

関連する問題