每个应用程序的配置

基于应用程序的配置将特定应用程序的依赖项从并行程序集的一个版本重定向到另一个版本的程序集。 如果特定应用程序的正确操作所需的程序集版本与通常指定为 默认配置发布服务器配置的版本不同,则可能需要每个应用程序的配置。 例如,发行者的程序集版本的全局更新可能会修复程序集,但会中断此特定应用程序。 在这种情况下,每个应用程序的配置可能用于使应用程序继续使用以前的程序集版本运行。

从 Windows Server 2003 开始,每个应用程序的配置始终会覆盖每个应用程序的默认配置。 仅当 应用程序配置文件publisherpolicy apply 中指定 apply = "No" ,且应用程序兼容性数据库中存在相应项时,基于每个应用程序的每个应用程序配置将覆盖每个应用程序的 发布服务器配置

备注

在 Windows XP 上,基于每个应用程序的配置会覆盖每个应用程序的默认配置发布服务器配置。 有关信息,请参阅Windows XP 上的每个应用程序配置

从 Windows Server 2003 开始,如果 应用程序配置文件publisherpolicy apply 中指定 apply = "yes" 并且为应用程序兼容性数据库中的应用程序设置了 EnableAppConfig 标志,则每个应用程序的配置将覆盖 发布服务器配置。 使用基于应用程序的配置重写发布服务器配置的这一功能使应用程序能够在安全模式下运行。 有关应用程序兼容性数据库和安全模式的详细信息,请参阅 Windows 应用程序兼容性 Toolkit。 你可以从获取 Windows 应用程序兼容性 Toolkit https://www.microsoft.com/downloads

备注

如果使用 应用程序配置文件提供组件 (.config 文件) 在 publisherpolicy apply 中指定 apply = "no" ,这将导致生成激活上下文失败。 如果使用在 publisherpolicy apply 中指定 apply = "yes" 的 .config 文件发送组件,则将忽略每个应用程序的配置。

应用程序管理员可以通过创作和安装应用程序配置文件并更新应用程序兼容性数据库来实现每个应用程序的配置。 然后,应用程序配置文件应部署并安装到与应用程序的可执行文件相同的文件夹中。 有关文件架构的列表,请参阅 应用程序配置文件架构。 必须按应用程序兼容性 Toolkit 中所述分发应用程序兼容性数据库。

备注

如果你的应用程序在安全模式下运行,则它将不会收到任何重要的安全修补程序或 bug 修复程序集的发布服务器可能会作为发布服务器配置文件发布。 因此,使用每个应用程序配置的应用程序可能会保持不安全或不能正常工作,即使在将具有这些修补程序的新程序集应用到系统后也是如此。 出于此原因,应用程序开发人员绝不应该使用每个应用程序的配置来发布应用程序。 每个应用程序的配置仅在应用程序由发布服务器配置中断时,才应由企业管理员用于临时修复。 在这种情况下,永久解决方案是程序集的开发人员和应用程序的开发人员将需要协同工作,以确保具有发布服务器配置的程序集完全向后兼容。

下面是应用程序配置文件的示例。 有关详细信息,请参阅应用程序配置文件。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
 <windows>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
   <assemblyIdentity  processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>
   <publisherPolicy apply="no"/>                     
   <dependentAssembly>
    <assemblyIdentity type="win32" processorArchitecture="x86" name="Microsoft.Windows.SampleAssembly" publicKeyToken="0000000000000000"/>
    <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
   </dependentAssembly>
  </assemblyBinding>
 </windows>
</configuration>

应用程序管理员应该将所需的项添加到应用程序兼容性数据库中。 从下载并安装 Windows 应用程序兼容性 Toolkit 2.6 https://www.microsoft.com/downloads 。 按照工具包中所述,使用兼容性管理员创建新的自定义或更新现有数据库。 要为应用程序的兼容性层选择的兼容性修补程序是 EnableAppConfig。 必须始终在应用程序之前测试应用程序,然后再安装新的兼容性数据库。