(.Net)アプリケーションの設定ファイルを作ろうとしたけど。移転中~(.Net)アプリケーションの設定ファイルを作ろうとしたけど。ファイル、そしてレジストリへと遷移してきました。設定先として推奨されてるようです。(VistaのUACも少し絡んでます。)まず、アプリケーション構成ファイル(アプリケーション名.config)はWindowsユーザにかかわりなくアプリケーション全体の設定を保存するファイルとなります。DBの接続文字列など、スコープがアプリケーションになっているものがアプリケーション構成ファイルに保存されます。Studioのデザイナでは接続文字列のスコープは変更できません。勝手に作ってくれます。このときの保存場所は下記のようになります。C:\Users\ユーザ名\AppData\Local\<CompanyName>\<ProductName>\<ProductVersion>\user.config厄介なのは、スコープがユーザーの設定項目はプログラム側から読み書きできるのですが、スコープがアプリケーションのものは、プログラム側から書き込みができないのです。設定値を保存できるのですが、上記のパスを見てわかるようにアプリケーションのバージョンによってファイルは別になっています。バージョンアップしたときは、前バージョンの設定を引き継ぐ等の処理がいりますね。)この書き込みができないというのは、アプリケーション構成ファイルに保存ができないという意味です。Properties.Settings.Default.項目など)はReadOnlyになってますが、このプロパティにデータを代入する場合は方法があります。ファイルには落とせません。その方法は(.Net)スコープがアプリケーションになっているapp.configの設定プロパティに値を入れる方法を参照。いうことは、ユーザをまたいだ設定は、アプリケーション構成ファイルではできないことになります。これは正直かなり不便です。メリットも意味がなくなってしまいます。ファイルの読み書きがサポートされてますが、これもいつまでサポートされるかわからないので不安です。配下にアプリケーションを配置した場合です。配下はアプリケーションから触ることができません。いう領域にアプリケーションが変更したファイルが残るらしいですが。Data」)に設定ファイルを置くという案を提示してましすが、この場合レジストリと同じくインストーラを作らないとアンインストール時にゴミが残っちゃいます。書き込むという一番手軽な方法を使うことにしました。(CommonApplicationDataにゴミを残すのは覚悟で)今、作成中のアプリは実は、アプリケーション共通でも、ユーザ個別でも支障はないので。今後ユーザ関係無しに設定を保存したい場合は、やはりレジストリに書き込むか、VirtualStore覚悟(ProgramFiles配置時)でiniファイルもしくは、自作xmlファイルにするくらいですかね。情シスで何でも屋の三流プログラマのコーディング、サーバ管理、PC生活関係のメモ書き。このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。29検索カテゴリ全体Linuxサーバがらみ.Net開発PHP開発C/C++開発JavaSQLツール思ったこととかニュースとか。メッセージを入力してください。