Configurando o redirecionamento de vinculação de assembly
Nota
Este artigo é específico do .NET Framework. Ele não se aplica a implementações mais recentes do .NET, incluindo o .NET 6 e versões posteriores.
Por padrão, os aplicativos usam o conjunto de assemblies do .NET Framework fornecidos com a versão de tempo de execução usada para compilar o aplicativo. Você pode usar o atributo appliesTo no <elemento assemblyBinding> em um arquivo de configuração do aplicativo para redirecionar referências de vinculação de assembly para uma versão específica dos assemblies do .NET Framework. Esse atributo opcional usa um número de versão do .NET Framework para indicar a qual versão ele se aplica. Se nenhum atributo appliesTo for especificado, o <elemento assemblyBinding> se aplicará a todas as versões do .NET Framework.
O atributo appliesTo foi introduzido no .NET Framework versão 1.1 e é ignorado pelo .NET Framework versão 1.0. Isso significa que todos os <elementos assemblyBinding> são aplicados ao usar o .NET Framework versão 1.0, mesmo que um atributo appliesTo seja especificado.
Nota
Use o atributo appliesTo para limitar o redirecionamento de vinculação de assembly a uma versão específica do tempo de execução.
Por exemplo, para redirecionar a vinculação de assembly para um assembly do .NET Framework versão 1.0, você deve incluir o seguinte código XML no arquivo de configuração do aplicativo.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v1.0.3705">
<dependentAssembly>
* assembly information goes here *
</dependentAssembly>
</assemblyBinding>
</runtime>
Os <elementos assemblyBinding> são sensíveis à ordem. Você deve inserir informações de redirecionamento de vinculação de assembly para qualquer assemblies do .NET Framework versão 1.0 primeiro, seguido por informações de redirecionamento de vinculação de assembly para qualquer assemblies do .NET Framework versão 1.1. Finalmente, insira informações de redirecionamento de vinculação de assembly para qualquer redirecionamento de assembly do .NET Framework que não use o atributo appliesTo e, portanto, se aplique a todas as versões do .NET Framework. Em caso de conflito no redirecionamento, a primeira instrução de redirecionamento correspondente no arquivo de configuração é usada.
Por exemplo, para redirecionar uma referência a um assembly do .NET Framework versão 1.0 e outra referência a um assembly do .NET Framework versão 1.1, você usaria o padrão mostrado no pseudocódigo a seguir.
<assemblyBinding xmlns="..." appliesTo="v1.0.3705">
<!-- .NET Framework version 1.0 redirects here. -->
</assemblyBinding>
<assemblyBinding xmlns="..." appliesTo="v1.1.4322">
<!-- .NET Framework version 1.1 redirects here. -->
</assemblyBinding>
<assemblyBinding xmlns="...">
<!-- Redirects meant for all versions of the .NET Framework. -->
</assemblyBinding>
Depurando erros do arquivo de configuração
O tempo de execução analisa os arquivos de configuração uma vez quando um domínio de aplicativo é criado e carrega o código nesse domínio de aplicativo. O common language runtime lida com erros em um arquivo de configuração ignorando a entrada. O tempo de execução ignora todo o arquivo de configuração se ele contiver XML malformado. Para XML inválido, apenas as seções inválidas são ignoradas.
Você pode determinar se um arquivo de configuração está sendo usado determinando se redirecionamentos de vinculação de assembly estão ocorrendo. Use o Assembly Binding Log Viewer (Fuslogvw.exe) para ver quais assemblies estão sendo carregados. Para ver todas as ligações de assembly, você deve definir uma entrada para ForceLog no registro.