.net 3.5でC#を使用しています
プログラムデータをC:\ Program Data \ MyProgramName\fileName.xmlの下のファイルに保存しています。
アプリケーションを一度インストールして実行した後、アンインストールし(アンインストール中に「プログラムデータ」からすべてのファイルを削除します)、アプリケーションを再インストールして実行しました。
奇妙なことに、私のアプリケーションは、プログラムデータ内のファイルが存在するかのように起動しました。つまり、データファイルが削除されても、アプリ内に古いデータがありました。
実行時:
File.Exists("C:\Program Data\MyProgramName\fileName.xml")
ファイルが存在しないことは確かにわかっていましたが、「true」になりました。
アプリケーションを管理者として実行した後、ファイルが存在しなかった場合、状況はさらに奇妙になりました。
調査の結果、「C:\ Program Data \ MyProgramName \ fileName.xml」を取得する代わりに、管理者権限なしでアプリケーションを実行すると、「C:\ Users \ userName \ AppData \ Local \ VirtualStore\ProgramData」が取得されることがわかりました。 \ MyProgramName \ fileName.xml "
そして確かに、以前のインストールから存在したファイルがありました(それが存在することを知らなかったので、私は明らかに削除しませんでした)。
したがって、明らかに、プログラムデータの下にファイルへの仮想パスがあります。
編集 :
仮想ストア内の古いファイルを削除した後、アプリケーションが突然正しいファイルを見つけることができることがわかりました。(プログラムデータの下のファイルには変更を加えませんでした。
私の質問は:
- なぜそれが起こるのですか。
- どうすればそれを防ぐことができますか
前もって感謝します