关于清单文件

时间:2009-01-06 08:37:05

标签: manifest

最近,我遇到了一个非常奇怪的问题,这个问题只发生在Windows XP SP3和Vista中。以下是我的步骤:

  1. 在桌面中创建两个新文件夹(假设文件夹名称为A和B)
  2. 将Microsoft GraphEdit(graphedt.exe)应用程序复制到A文件夹,然后创建一个空的graphedt.exe.manifest文件。运行graphedt.exe,您会看到一条错误消息,由于错误的清单,graphedt.exe无法运行。
  3. 将Microsoft GraphEdit(graphedt.exe)应用程序复制到B文件夹,运行graphedt.exe并关闭它,然后创建一个空的graphedt.exe.manifest文件,再次运行graphedt.exe,您将看到清单文件无法应用于graphedt.exe。但是,如果您更改graphed.exe的上次修改时间,则清单将再次生效。
  4. 似乎Windows会记住EXE第一次使用清单文件时的状态,但如果更改EXE大小或上次修改日期,Windows也会重置旧的记忆状态。

1 个答案:

答案 0 :(得分:18)

[我是微软当前的SxS维护者]

很好的调查益刚。您正在描述Vista上的行为,而不是XP SP3上的行为。

每次运行应用程序时检测清单是否都存在性能问题,因为通常应用程序要么有清单,要么没有,而且状态不会发生太大变化。出于这个原因,在Vista上,第一次运行应用程序时,我们缓存一点描述“此应用程序具有关联的清单”或“此应用程序没有清单”。当您第一次运行graphedt.exe时,Windows缓存了清单的缺失,并且随后将不会查找清单。要重置缓存,请更新可执行文件的上次修改时间。