Partilhar via


Como: Ativar e desativar a redireção automática de ligação

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.

Quando compila aplicações desktop no Visual Studio que têm como alvo .NET Framework 4.5.1 e versões posteriores, os redirecionamentos de ligação podem ser automaticamente adicionados ao ficheiro de configuração da aplicação para substituir a unificação de assembleias. Os redirecionamentos de associação são adicionados se a sua app ou os seus componentes referenciarem mais de uma versão da mesma assemblagem, mesmo que especifique manualmente os redirecionamentos de associação no ficheiro de configuração da sua app. A funcionalidade de redirecionamento automático de ligação afeta aplicações de ambiente de trabalho que têm como alvo o .NET Framework 4.5.1 ou uma versão posterior. Caso não tenha ativado ou desativado explicitamente o redirecionamento de associação gerado automaticamente e atualize um projeto existente, a funcionalidade do projeto é ativada automaticamente.

Para aplicações web, quando o Visual Studio encontra um conflito de binding, pede que adicione um redirecionamento binding para resolver o conflito.

Pode ativar o redirecionamento automático de binding para aplicações existentes que visam versões anteriores do .NET Framework (4.5 e anteriores). Podes desativar esta funcionalidade se quiseres criar manualmente redirecionamentos de binding.

Importante

A partir do Visual Studio 2022, o Visual Studio não inclui mais componentes do .NET Framework para o .NET Framework 4.0 - 4.5.1 porque essas versões não são mais suportadas. O Visual Studio 2022 e versões posteriores não podem criar aplicativos destinados ao .NET Framework 4.0 até o .NET Framework 4.5.1. Para continuar a criar esses aplicativos, você pode usar o Visual Studio 2019 ou uma versão anterior.

Desativar redirecionamentos automáticos de ligação em aplicações de ambiente de trabalho

Os redirecionamentos automáticos de ligação estão ativados por defeito para aplicações de ambiente de trabalho do Windows que têm como alvo o .NET Framework 4.5.1 e versões posteriores. Os redirecionamentos de ligação são adicionados ao ficheiro de configuração de saída (app.config) quando a aplicação é compilada. Os redirecionamentos sobrepõem-se à unificação da assembleia que, de outra forma, poderia ocorrer. O ficheiro de origemapp.config não é modificado. Pode desativar esta funcionalidade modificando o ficheiro do projeto para a aplicação ou desmarcando uma caixa de seleção nas propriedades do projeto no Visual Studio.

Desativar através das propriedades do projeto

Se tiver o Visual Studio 2017 na versão 15.7 ou posterior, pode desativar os binding redirects gerados automaticamente nas páginas de propriedades do projeto.

  1. Clique com o botão direito do mouse no projeto no Gerenciador de Soluções e selecione Propriedades.

  2. Na página de Aplicação , desmarque a opção de gerar automaticamente redirecionamentos de ligação .

    Se não vires a opção, terás de desativar manualmente a funcionalidade no ficheiro do projeto.

  3. Pressiona Ctrl+S para guardar a alteração.

Desativar manualmente no ficheiro do projeto

  1. Abra o ficheiro do projeto para edição usando um dos seguintes métodos:

    • No Visual Studio, seleciona o projeto no Explorador de Soluções e depois escolhe Abrir Pasta no Explorador de Ficheiros a partir do menu de atalhos. No Explorador de Ficheiros, encontre o ficheiro do projeto (.csproj ou .vbproj) e abra-o no Bloco de Notas.
    • No Visual Studio, no Explorador de Soluções, clique com o botão direito no projeto e escolha Descarregar o Projeto. Clique com o botão direito no projeto descarregado novamente e depois escolha Editar [projectname.csproj].
  2. No ficheiro do projeto, encontre a seguinte entrada de propriedade:

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    
  3. Alteração true para false:

    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
    

Ativar manualmente os redirecionamentos automáticos de ligações

Pode ativar redirecionamentos automáticos de ligação em aplicações existentes que visam versões mais antigas do .NET Framework, ou em casos em que não é automaticamente solicitado a adicionar um redirecionamento. Se estiver a direcionar para uma versão mais recente do .NET Framework mas não for automaticamente solicitado a adicionar um redirecionamento, provavelmente obterá um resultado da compilação que sugere remapear assemblies.

  1. Abra o ficheiro do projeto para edição usando um dos seguintes métodos:

    • No Visual Studio, seleciona o projeto no Explorador de Soluções e depois escolhe Abrir Pasta no Explorador de Ficheiros a partir do menu de atalhos. No Explorador de Ficheiros, encontre o ficheiro do projeto (.csproj ou .vbproj) e abra-o no Bloco de Notas.
    • No Visual Studio, no Explorador de Soluções, clique com o botão direito no projeto e escolha Descarregar o Projeto. Clique com o botão direito no projeto descarregado novamente e depois escolha Editar [projectname.csproj].
  2. Adicione o seguinte elemento ao primeiro grupo de propriedades de configuração (sob a <PropertyGroup> etiqueta):

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    

    Segue-se um ficheiro de projeto de exemplo com o elemento inserido:

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
      <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
        <ProjectGuid>{123334}</ProjectGuid>
        ...
        <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      </PropertyGroup>
      ...
    </Project>
    
  3. Compila a tua aplicação.

Ativar redirecionamentos automáticos de ligação em aplicações web

Os redirecionamentos automáticos de ligação são implementados de forma diferente para aplicações web. Como o ficheiro de configuração de origem (web.config) deve ser modificado para aplicações web, os redirecionamentos de ligação não são automaticamente adicionados ao ficheiro de configuração. No entanto, o Visual Studio notifica-te de conflitos de binding, e podes adicionar redirecionamentos de binding para resolver os conflitos. Como és sempre solicitado a adicionar redirecionamentos de ligação, não precisas de desativar explicitamente esta funcionalidade para uma aplicação web.

Para adicionar redirecionamentos de binding ao ficheiro web.config:

  1. No Visual Studio, compila a aplicação e verifica se há avisos de compilação.

    Aviso de build para conflitos de referência de assembly.

  2. Se houver conflitos de ligação de montagem, aparece um aviso. Clique duas vezes no aviso, ou selecione o aviso e pressione Enter.

    Aparece uma caixa de diálogo que permite adicionar automaticamente as configurações de redirecionamento necessárias ao ficheiro web.config fonte.

    Diálogo de permissão de redirecionamento vinculado.

Consulte também