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