Compartilhar via


Configuração por aplicativo no Windows XP

No Windows XP, a configuração por aplicativo substitui a configuração padrão e a configuração do editor por aplicativo. Isso redireciona a dependência de um aplicativo específico de uma versão de um assembly lado a lado para outra versão especificada do assembly.

Observação

A partir do Windows Server 2003, a configuração por aplicativo substitui a configuração do editor por aplicativo somente se o arquivo de configuração do aplicativoespecificar apply="no" em publisherPolicy e houver uma entrada correspondente presente no banco de dados de compatibilidade do aplicativo. A configuração por aplicativo sempre substitui a configuração padrão. Para obter informações, consulte configuração por aplicativo.

 

Uma configuração por aplicativo poderá se tornar necessária se a operação correta de um aplicativo específico exigir uma versão de assembly diferente da versão normalmente especificada como uma configuração padrão ou de editor. Por exemplo, uma atualização global da versão do assembly pelo editor pode corrigir o assembly, mas interromper esse aplicativo específico. Nesse caso, a configuração por aplicativo pode ser usada para permitir que o aplicativo continue a ser executado com a versão anterior do assembly. Outro exemplo, uma instalação de service pack que contém uma atualização de assembly pode usar a configuração do editor para redirecionar as dependências de todos os aplicativos e assemblies no sistema da versão 1.0.0.0 para a 1.0.1.0. Se houver um aplicativo que exija que a versão 1.0.0.0 funcione corretamente, ele poderá ser redirecionado para a versão 1.0.0.0 usando a configuração por aplicativo.

Os administradores de aplicativos podem implementar uma configuração por aplicativo criando e instalando arquivos de configuração de aplicativo. Eles redirecionam um aplicativo específico da dependência de uma versão de um assembly lado a lado para a dependência de outra versão. Os arquivos de configuração do aplicativo podem substituir os arquivos de configuração do editor e a configuração padrão especificada por manifestos de aplicativo e manifestos de assembly. O arquivo de configuração do aplicativo inclui informações usadas pelo carregador quando CreateProcess é chamado.

Para configurar um aplicativo para substituir o manifesto do aplicativo e a configuração do editor, um desenvolvedor deve criar um arquivo de configuração de aplicativo. Em seguida, o arquivo de configuração do aplicativo é implantado e instalado na mesma pasta que o arquivo executável do aplicativo. Para obter uma listagem do esquema de arquivo, consulte Esquema de arquivo de configuração de aplicativo.

Observe que, se o aplicativo usar a configuração por aplicativo, ele não receberá correções de segurança importantes ou correções de bugs que o editor do assembly poderá emitir como arquivos de configuração do editor. Um aplicativo que usa a configuração por aplicativo pode, portanto, permanecer não seguro ou continuar funcionando incorretamente mesmo depois que um novo assembly com essas correções for aplicado ao sistema. Por esse motivo, os desenvolvedores de aplicativos nunca devem enviar um aplicativo com uma configuração por aplicativo. A configuração por aplicativo só deve ser usada por administradores corporativos como uma correção temporária quando o aplicativo é interrompido por uma configuração do editor. Nesse caso, a solução permanente é que os desenvolvedores do assembly e os desenvolvedores do aplicativo precisarão trabalhar juntos para garantir que os assemblies com a configuração do editor sejam totalmente compatíveis com versões anteriores.

Veja a seguir um exemplo de um arquivo de configuração de aplicativo. Para obter mais informações, consulte Arquivos de configuração de aplicativo.

<?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>