MS VistaのProgramDataフォルダーで仮想化する理由
-
03-07-2019 - |
質問
VISTAのUACを考慮してアプリを修正しました。
そのため、現在、.mdb(JETまたはAccessファイル)は ProgramData \ MyApp \
アプリがデータベースを初めて読み込むとき、その場所からデータベースを読み込んでいるとき...しかし、アプリがデータベースに書き込みを行っているとき...ファイルは仮想化され、 Users \ MyUser \ AppData \ Local \ VirtualStore \ ProgramData \ MyApp
。この瞬間から、アプリは常にディスクの仮想化された場所に移動します。
私のアプリは動作していますが、この方法で続けると、データベースはユーザーごとになり、PC内のすべてのユーザーとデータベースを共有する必要があります。
ProgramDataフォルダーの下に書き込むと、仮想化メカニズムがトリガーされないと思った。
不足しているもの
ProgramDataの下でMyAppフォルダーのアクセス許可を設定する必要がありますか?
インストール時にこれを行うにはどうすればよいですか
ありがとうございます...
詳細: VSセットアッププロジェクトを使用してVS2003 VB.NETで開発。
解決
ほとんどの場合、インストール中にすべてのユーザーに書き込み権限を設定する必要があります。
テストするには、仮想化フォルダーを削除し、ProgramData \ MyAppフォルダーとファイルにアクセス許可を手動で設定し、機能するかどうかを確認します。
インストール中に実用的にそれを行う方法については、使用しているテクノロジーによって異なります。
他のヒント
ここでも問題が発生しました。一度ファイルを仮想化することをvistaが決めたようです。それを止める唯一の方法は、仮想ファイルを削除することです。 次回使用するときは、ProgramDataフォルダーを使用します。