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 pode 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 do editor. Por exemplo, uma atualização global da versão do assembly pelo editor pode corrigir o assembly, mas quebrar 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 substitui de configuração do editor por aplicativo somente se o arquivo de configuração do aplicativo especificar apply="no" no de política do publisher e houver uma entrada correspondente presente no banco de dados de compatibilidade de aplicativos.
Observação
No Windows XP, a configuração por aplicativo substitui de configuração padrão e de 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á um de configuração do editor de se a do arquivo de configuração do aplicativo especificar apply="yes" no publisherPolicy e o sinalizador EnableAppConfig estiver definido para o aplicativo no banco de dados de compatibilidade de aplicativos. Esse recurso de substituir uma configuração de editor usando uma configuração por aplicativo permite que o aplicativo seja executado no modo de segurança. Para obter mais informações sobre o banco de dados de compatibilidade de aplicativos e o modo de segurança, consulte o Kit de Ferramentas de Compatibilidade de Aplicativos do Windows. Você pode obter o Kit de Ferramentas de Compatibilidade de Aplicativos do Windows em https://www.microsoft.com/downloads.
Observação
Se você enviar componentes com um arquivo de configuração de aplicativo (arquivo.config) que especifique apply="no" em 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 aplicativos e atualizando o banco de dados de compatibilidade de aplicativos. 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 Application Configuration File Schema. O banco de dados de compatibilidade de aplicativos deve ser distribuído conforme descrito no Kit de Ferramentas de Compatibilidade de Aplicativos.
Observação
Se seu aplicativo for executado no Modo de Segurança, 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 a funcionar incorretamente mesmo depois que um novo assembly com essas correções é 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 de 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 configuração do editor sejam totalmente compatíveis com versões anteriores.
A seguir está um exemplo de um arquivo de configuração do aplicativo. Para obter mais informações, consulte Arquivos de configuração do 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 de aplicativos. Transfira e instale o Windows Application Compatibility Toolkit 2.6 a partir do https://www.microsoft.com/downloads. Crie um novo banco de dados personalizado ou atualize seu 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 para seu aplicativo é EnableAppConfig. Você sempre deve testar aplicativos antes de instalar um novo banco de dados de compatibilidade.