Configuração por aplicativo
A configuração por aplicativo redireciona a dependência de um aplicativo específico de uma versão de um assembly lado a lado para outra versão do assembly. 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 configuração 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.
A partir do Windows Server 2003, a configuração por aplicativo sempre substitui a configuração padrão por aplicativo. A configuração por aplicativo substituirá a configuração do editor por aplicativo somente se o arquivo de configuração do aplicativo especificar apply="no" no publisherPolicy e houver uma entrada correspondente presente no banco de dados de compatibilidade do aplicativo.
Observação
No Windows XP, a configuração por aplicativo substitui a configuração padrão e a configuração do editor por aplicativo. Para obter informações, consulte Configuração por aplicativo no Windows XP.
A partir do Windows Server 2003, uma configuração por aplicativo substituirá uma configuração de editor se o arquivo de configuração do aplicativoespecificar apply="yes" em publisherPolicy e o sinalizador EnableAppConfig estiver definido para o aplicativo no banco de dados de compatibilidade do aplicativo. Essa funcionalidade para substituir uma configuração de editor usando uma configuração por aplicativo permite que o aplicativo seja executado em Safemode. Para obter mais informações sobre o banco de dados de compatibilidade de aplicativos e o Safemode, consulte o Kit de Ferramentas de Compatibilidade de Aplicativos do Windows. Você pode obter o Kit de Ferramentas de Compatibilidade de Aplicativos do Windows do https://www.microsoft.com/downloads.
Observação
Se você enviar componentes com um arquivo de configuração de aplicativo (.config arquivo) que especifica apply="no" no publisherPolicy, isso fará com que a geração do contexto de ativação falhe. A configuração por aplicativo será ignorada se você enviar componentes com um arquivo .config especificando apply="yes" no publisherPolicy.
Os administradores de aplicativos podem implementar uma configuração por aplicativo criando e instalando arquivos de configuração de aplicativo e atualizando o banco de dados de compatibilidade do aplicativo. Em seguida, o arquivo de configuração do aplicativo deve ser 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. O banco de dados de compatibilidade do aplicativo deve ser distribuído conforme descrito no Application Compatibility Toolkit.
Observação
Se o aplicativo for executado no Safemode, ele não receberá nenhuma correção de segurança importante ou correções de bugs que o editor do assembly possa emitir como arquivos de configuração do editor. Um aplicativo que usa a configuração por aplicativo pode, portanto, permanecer inseguro 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 é quebrado 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 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>
O administrador do aplicativo deve adicionar as entradas necessárias ao banco de dados de compatibilidade do aplicativo. Baixe e instale o Windows Application Compatibility Toolkit 2.6 do https://www.microsoft.com/downloads. Crie um novo banco de dados personalizado ou atualize o banco de dados existente usando o Administrador de Compatibilidade, conforme descrito no kit de ferramentas. A Correção de Compatibilidade que você deseja escolher para a camada de compatibilidade do aplicativo é EnableAppConfig. Você sempre deve testar aplicativos antes de instalar um novo banco de dados de compatibilidade.