この設定はアプリ固有のものとユーザ固有のものと分けることが出来ます。
今回あるちょっとしたツールでiniファイルやレジストリ的にデータの保存がしたくてこの機能を利用してみました。このツールでは「アプリ名.config」に保存したいなぁと思い、以下のような実装をしました。
- 該当のプロパティはアプリケーションスコープ
- あるボタンを押下するとxxx.Properties.Settings.Default["YYY"]に値を設定
- xxx.Properties.Settings.Default.Save()にて保存
ここでおかしな現象が発生しました。なぜか実行時にこのプロパティにアクセスすると例外が発生するようになりました。原因がさっぱりわからない。その後3時間くらい右往左往していて、たまたまExceptionのInnerExceptionを見ると何かおかしなパス(C:\Documents and Settings\matsuo\Local Settings\Application Data\インストール時に設定した会社名?)の書いてある例外が。。。そのパスを見るとそこにはユーザ設定らしいファイルが存在しました。
そのファイルを消すと元通り正しく動作するようにまりました。よく見ると過去に作ったアプリのフォルダも存在していました。
その後、プロジェクトのプロパティ「設定」画面の「同期」ボタンを押下することによりクリアできことがわかりました。
・・・挙動不信な例外が発生したら、まずマニュアルを。次に「InnerException」を。次にGoogleで。教訓になりました。
0 件のコメント:
コメントを投稿