備忘録。
C#で下記のように設定情報を保存した場合に保存される場所は、ユーザーフォルダの下です。が、そのフォルダ名にはハッシュ値のような英数字の羅列が入っています。そして、1つのアプリについて数個のフォルダができていることがあります。これ、なんなんだろう?と思っていたのですが、謎が解けました。
Properties.Settings.Default["設定項目1"] = settingValue1;
Properties.Settings.Default.Save();
パスに含まれるハッシュ値は下記の情報を元に作っているようです。
普通に作るアプリだと厳密名なんて付けないので、パスになります。ということは動かしたパスが違えば設定ファイルは別々になりますし、DebugとReleaseでそれぞれVisual Studioから実行すれば、それだけで2つのフォルダーが出来るわけですね。なるほど。
上記の事は下記サイトに記載されていました。
上記サイトはVisual Studio 2005でさらにVisual Basic .NETのものなので、Windows10も無かった頃の話で少しパスが違うのですが、設定ファイル「user.config」付近は
<appdomainname>_<eid>_<hash>\<verison>
で、やはりハッシュのようです。で、ハッシュ情報の生成については
<hash> is a SHA1 hash of evidence gathered from the CurrentDomain, in the following order of preference:
- StrongName
- URL
If neither of these is available, use the .exe path.
とのこと。なるほどね。同じような質問はstackoverflowにもあったようです。
参考まで。