2

インストーラーが構成ファイルの存在を確認するプログラムがあり、存在する場合はそのファイルをコピーしません (ユーザーが構成ファイルを変更し、それらの変更を保持したいと想定しています)。残念ながら、これは Vista より前のアプリケーションであり、構成ファイルを Program Files に保持します。問題は、特定の API を再インストールするときにディレクトリを手動で消去しても、そこにディレクトリがあると認識されることです。たとえば、VB6 では、ファイル ダイアログの参照ではフォルダーが表示されますが、エクスプローラー、コマンド シェルなどではフォルダーが表示されません。ファイルを上書きすると、古いファイルがそこに残ります (一部の API では、エクスプローラーではなく) ファイルの参照ダイアログ内のフォームを除いて削除できません。

これらの Phantom フォルダで何が起こっているのでしょうか? また、すべての API が同じものを見るようにファイルを削除するにはどうすればよいでしょうか? TxF 、または検索用のインデクサーに関係している可能性がありますが、使用するインストーラー (InnoSetup) とアプリケーションの一部 (VB6 で記述された部分) の両方がファイルの古いバージョンを認識しており、他のすべてはファイルの古いバージョンを認識しています。現行版。

4

4 に答える 4

5

Oskar Duveborn が言ったように、あなたが見ているのは Vista の仮想化動作である可能性が非常に高いです。

コンピューターでユーザー アカウント制御 (UAC) が有効になっている場合、標準ユーザーと昇格されていないプログラムは、プログラム フォルダーへの書き込みを許可されません。代わりに、Windows はファイルを適切なサブフォルダー%AppData%\Local\VirtualStore(たとえば、C:\Users\MyUser\AppData\Local\VirtualStore) にサイレントにリダイレクトします。

エクスプローラーで実際のフォルダーを参照すると、代わりに仮想ストアを参照するために使用できる [互換性ファイル] ツールバー ボタンが表示されます。

これは Windows からの互換性動作のみであることに注意してください。プログラムは、独自のサブフォルダ%AppData%.

詳細については、この TechNet Magazine の記事を参照してください。

于 2009-02-19T09:33:52.053 に答える
5

私が正しい方向に進んでいるかどうかはわかりませんが、Vista は %programfiles% に書き込みを試みるアプリケーションや、「これが正しい方法ではない」というフラグが立てられたアプリケーションに対して仮想化されませんか? (したがって、代わりにファイルシステムのユーザー部分のどこかに移動し、レガシーアプリにそれについて通知せずに-ちょっと透過的にします)..?

仮想ストア リダイレクトされたファイルは、%appdata% のどこかに保存されます。また、エイリアスの場所で、エクスプローラーの [Compability Files] オプションをチェックして場所を確認することもできます。私の知る限り、この動作を取り除くには %programfiles% への書き込みを停止する必要があります。

于 2009-02-18T19:16:58.417 に答える
0

AppDataフォルダー(C:\ Documents and Settings \ UserName \ AppData)を意味しますか?私はビスタマシンを使用していませんが、それがパスだと思います。アンインストール後にワイプされないことを確認してください。

于 2009-02-18T18:46:05.480 に答える