ときどき、a) アプリケーションのユーザーと b) アプリケーション自体に構成を提供するという問題に直面します。
.Net には独自の設定フレームワークがあり、構成は XML ベースでapp.settings
ファイルに保存されます (user.settings
それぞれ)。
sに関してはuser.setting
、すべて問題ありません。私のアプリケーションを使用するすべてのユーザーに対して、独自のアプリケーションuser.settings
が作成されています。ユーザーは、アプリケーションの設定や他のユーザーの構成に影響を与えない範囲で、自分の設定を変更する権限を持っています。
しかし
一般的なアプリケーション設定である app.settings は、主C:\Program Files\\...
にアプリケーションのインストール時にアセンブリ フォルダーに格納されます。そのため、通常のユーザーは管理者権限がないと設定を変更できません。
また...
設定を特定のアプリケーションやユーザーにバインドするのではなく、アプリケーションが現在実行されているコンピューターにバインドしたい場合があります。コンピューターのすべてのユーザーがアプリケーション自体をアクティブにしたくないライセンス ファイルのように。
XP では、マシン設定用の隠しフォルダーがありましたがC:\ProgramData
、Windows 7/8 では、通常のインストーラーがそこに作成するすべてのフォルダーは、管理者権限でのみ書き込み可能になっているようです。
結局のところ、このばかげた許可の問題をどのように解決するのでしょうか? 通常のユーザーが app.settings を変更し、すべてのユーザーのグローバル設定を app.settings から分離する方法 (machine.settings のようなもの) はありますか?