Partilhar via


Configuração de redirecionamento de ligação de assembleia

Observação

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; ele é 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.

Observação

Use o atributo appliesTo para limitar o redirecionamento de associação de assembly a uma versão específica da 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 dependentes da ordem. Você deve inserir informações de redirecionamento de vinculação de assembly para quaisquer assemblies do .NET Framework versão 1.0 primeiro, e depois para quaisquer assemblies do .NET Framework versão 1.1. Finalmente, insira as informações de redirecionamento de ligação de assembly para qualquer redirecionamento de assembly do .NET Framework que não utilize o atributo appliesTo e, portanto, aplica-se 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>

Depuração de erros no 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á a ser usado verificando se estão a ocorrer redirecionamentos de ligação de assemblies. Utilize o Assembly Binding Log Viewer (Fuslogvw.exe) para ver quais assemblies estão a ser carregados. Para ver todas as ligações de assembly, você deve definir uma entrada para ForceLog no registro.

Ver também