Windows XP 上的每应用程序配置
在 Windows XP 上,每个应用程序配置会基于每个应用程序替代 默认配置 和 发布服务器配置 。 这会将特定应用程序的依赖项从并行程序集的一个版本重定向到该程序集的另一个指定版本。
注意
从 Windows Server 2003 开始,仅当应用程序配置文件在 publisherPolicy 中指定 apply=“no”并且应用程序兼容性数据库中存在相应的条目时,每个应用程序配置才会基于每个应用程序替代发布服务器配置。 每个应用程序配置始终替代 默认配置。 有关信息,请参阅 每应用程序配置。
如果特定应用程序的正确操作需要与通常指定为默认配置或发布服务器配置的版本不同的程序集版本,则可能需要按应用程序配置。 例如,发布者对程序集版本的全局更新可能会修复程序集,但会中断此特定应用程序。 在这种情况下,可以使用每应用程序配置使应用程序能够继续使用以前的程序集版本运行。 另一个示例是,包含程序集更新的 Service Pack 安装可能会使用 发布者配置 将系统上所有应用程序和程序集的依赖项从版本 1.0.0.0 重定向到 1.0.1.0。 如果某个应用程序需要版本 1.0.0.0 才能正常工作,则可以使用每个应用程序配置将其重定向到版本 1.0.0.0。
应用程序管理员可以通过创作和安装应用程序配置文件来实现每个 应用程序配置。 它们将特定应用程序从对并行程序集的一个版本的依赖重定向到对另一个版本的依赖。 应用程序配置文件 可以替代 发布者配置文件 以及 应用程序清单 和 程序集清单指定的默认配置。 应用程序配置文件包含调用 CreateProcess 时加载程序使用的信息。
若要配置应用程序以替代应用程序清单和发布者配置,开发人员必须创作应用程序配置文件。 然后,应用程序配置文件将部署并安装到与应用程序的可执行文件相同的文件夹中。 有关文件架构的列表,请参阅 应用程序配置文件架构。
请注意,如果应用程序使用每个应用程序配置,则它不会收到任何重要的安全修补程序或 bug 修复,程序集的发布者可能会作为发布者配置文件发出。 因此,使用每个应用程序配置的应用程序可能保持不安全,或者即使在将具有这些修补程序的新程序集应用到系统之后,应用程序仍无法正常运行。 因此,应用程序开发人员绝不应交付具有每个应用程序配置的应用程序。 仅当应用程序被发布者配置破坏时,企业管理员才应将每个应用程序配置用作临时修复程序。 在这种情况下,永久解决方案是程序集的开发人员和应用程序的开发人员需要协同工作,以确保具有发布者配置的程序集完全向后兼容。
下面是应用程序配置文件的示例。 有关详细信息,请参阅 应用程序配置文件。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<windows>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity
name="Microsoft.Windows.mysampleApp"
processorArchitecture="x86"
version="1.0.0.0" type="win32"/>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.SampleAssembly"
processorArchitecture="x86"
publicKeyToken="0000000000000000"/>
<bindingRedirect
oldVersion="2.0.0.0"
newVersion="2.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</windows>
</configuration>