アプリケーションデータの衝突

既出だが下記アプリケーションデータは、
[レジストリ]
ユーザ(UserAppDataRegistry)
共通(CommonAppDataRegistry)
[ファイル]
ローミング(UserAppDataPath)
ローカル(LocalUserAppDataPath)
共通(CommonAppDataPath)

以下の項目からそのパスが決定する。
会社名(Application.CompanyName)
製品名(Application.ProductName)
製品バージョン(Application.ProductVersion)

GUID等の完全ユニークな名称ではない。
ならば衝突するのだろうか?

共通以外のRegistryとDataPathについて実際にやってみた。
案の定衝突した。
C#のApplication.UserAppDataRegistryとApplication.LocalUserAppDataPathが返却値するパスでリソースに書き込む。
会社名、製品名、製品バージョンを同一にしたプログラムA、Bで確認。
Aで書き込んだ内容はBで上書きされ、Bで書き込んだ内容をAで確認できた。

会社名、製品名が同じアプリケーション(かなり希だが・・・)の干渉に注意。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です