2017年8月24日木曜日

C# TIPS: Properties.Settingsの永続データ

小生の場合、プログラム開発時にはあれこれ調べ、さまざまなコーディング知識を得る。しかし数カ月後には、すべて忘れている。困ったものである。そこで今回は、覚えておきたい小ネタを、TIPSとして本ブログに書き残していくことにする。

まずはProperties.Settingsクラスの永続データの保存パスについて。

■ Properties.Settingsクラスはプログラムの状態を永続化する。――と言うとわかりにくいが、要するにプログラム終了時に特定の変数を記録し、次回に復元するためのライブラリだ。ウィンドウ位置の保存などにとても重宝する。

この永続データがどこにあるか調べたところ、次のパスに保存されていた。
C:\Users\ユーザー名\AppData\Local\会社名\プログラム識別記号\バージョン番号\user.config
フォルダ名に含まれる単語の意味は次の通り。

* ユーザー名
プログラム実行者のWindowsログイン名。これはつまり、ユーザーごとに別々の設定が保存可能ということだ。

* 会社名
開発会社名。プロジェクトのプロパティで設定可能である。趣味のプログラマなら適当な名前でもOKだ。自分の所有するドメイン名などにすると、他と重複せず良いんじゃなかろうか。

* プログラム識別記号
プログラムのEXEファイルの名前+何か記号。記号の意味は不明だが、デバッグビルドとリリースビルドで違うフォルダが作られることは確認した。

* バージョン番号
プログラムのアセンブリバージョン。プロジェクトのプロパティで設定可能。

■ 会社名やバージョン番号は、次の手順で設定する。
  1. メニューから、[プロジェクト]-[(プロジェクト名)のプロパティ]
  2. カテゴリは[アプリケーション]を選択
  3. [アセンブリ情報]ボタンをクリックする
  4. 会社名とバージョン番号を入力する


■ ところでVisual Studioには、アセンブリバージョンを「1.0.*」に設定しておくと、バージョン番号の末尾に自動的にビルド時刻を埋め込む便利な機能がある。

この機能を使うと毎ビルドごとにバージョン番号が更新され、設定保存パスも変わるため、「なんで設定が保存されないの?」と悩むはめになる。実体験である。

というわけで、Properties.Settingsクラスのデフォルトの保存パスを変える方法があればよいと思う。調べてみたい。

0 件のコメント:

コメントを投稿