2009-01-06 69 views
11

最近我遇到了一個很奇怪的問題,這個問題只發生在Windows XP SP3和Vista中。下面是我的步驟:關於清單文件

  1. 創建桌面兩個新的文件夾(假設文件夾名稱爲A和B)
  2. 複製微軟的GraphEdit(graphedt.exe)應用到一個文件夾,然後創建一個空的graphedt.exe.manifest文件中。運行graphedt.exe,您將看到一條錯誤消息,由於錯誤清單,graphedt.exe無法運行。
  3. 複製微軟的GraphEdit(graphedt.exe)應用到B文件夾,運行graphedt.exe並關閉它,然後創建一個空的graphedt.exe.manifest文件,再次運行graphedt.exe,你會看到清單文件不能適用於graphedt.exe。但是,如果您更改graphed.exe的最後修改時間,清單將再次運行。

看來Windows會在EXE第一次使用清單文件時記住狀態,但是如果您更改EXE大小或上次修改日期,Windows也會重置舊記憶狀態。

回答

17

[我是微軟目前的SxS維護人員]

好調查一崗。您正在描述Vista上的行爲,而不是XP SP3上的行爲。

每次運行應用程序時,檢查是否存在清單會成爲性能問題,因爲通常應用程序要麼具有清單,要麼沒有清單,並且該狀態變化不大。出於這個原因,在Vista上,第一次運行應用程序時,我們緩存一些描述「此應用程序有關聯的清單」或「此應用程序沒有清單」的位。當您第一次運行graphedt.exe時,Windows會緩存缺少清單,並且隨後不會查找清單。要重置緩存,請更新可執行文件的上次修改時間。