最近,我遇到了一个非常奇怪的问题,这个问题只发生在Windows XP SP3和Vista中。以下是我的步骤:
graphedt.exe
)应用程序复制到A文件夹,然后创建一个空的graphedt.exe.manifest
文件。运行graphedt.exe
,您会看到一条错误消息,由于错误的清单,graphedt.exe
无法运行。graphedt.exe
)应用程序复制到B文件夹,运行graphedt.exe
并关闭它,然后创建一个空的graphedt.exe.manifest
文件,再次运行graphedt.exe
,您将看到清单文件无法应用于graphedt.exe
。但是,如果您更改graphed.exe
的上次修改时间,则清单将再次生效。似乎Windows会记住EXE第一次使用清单文件时的状态,但如果更改EXE大小或上次修改日期,Windows也会重置旧的记忆状态。
答案 0 :(得分:18)
[我是微软当前的SxS维护者]
很好的调查益刚。您正在描述Vista上的行为,而不是XP SP3上的行为。每次运行应用程序时检测清单是否都存在性能问题,因为通常应用程序要么有清单,要么没有,而且状态不会发生太大变化。出于这个原因,在Vista上,第一次运行应用程序时,我们缓存一点描述“此应用程序具有关联的清单”或“此应用程序没有清单”。当您第一次运行graphedt.exe时,Windows缓存了清单的缺失,并且随后将不会查找清单。要重置缓存,请更新可执行文件的上次修改时间。