Partilhar via


Como: Habilitar e desabilitar o redirecionamento automático de vinculação

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.

Quando você compila aplicativos da área de trabalho no Visual Studio destinados ao .NET Framework 4.5.1 e versões posteriores, redirecionamentos de vinculação podem ser adicionados automaticamente ao arquivo de configuração do aplicativo para substituir a unificação do assembly. Os redirecionamentos de vinculação são adicionados se seu aplicativo ou seus componentes fizerem referência a mais de uma versão do mesmo assembly, mesmo que você especifique manualmente redirecionamentos de vinculação no arquivo de configuração do seu aplicativo. O recurso de redirecionamento de vinculação automática afeta os aplicativos da área de trabalho destinados ao .NET Framework 4.5.1 ou a uma versão posterior. Se você não tiver ativado ou desabilitado explicitamente o redirecionamento de vinculação gerado automaticamente e atualizar um projeto existente, o recurso será habilitado automaticamente.

Para aplicativos Web, quando o Visual Studio encontra um conflito de vinculação, ele solicita que você adicione um redirecionamento de associação para resolver o conflito.

Você pode habilitar o redirecionamento de vinculação automática para aplicativos existentes destinados a versões anteriores do .NET Framework (4.5 e anteriores). Você pode desativar esse recurso se quiser criar manualmente redirecionamentos de vinculação.

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 de vinculação automática em aplicativos da área de trabalho

Os redirecionamentos de vinculação automática são habilitados por padrão para aplicativos da área de trabalho do Windows destinados ao .NET Framework 4.5.1 e versões posteriores. Os redirecionamentos de vinculação são adicionados ao arquivo de configuração de saída (app.config) quando o aplicativo é compilado. Os redirecionamentos substituem a unificação do assembly que poderia ocorrer de outra forma. O arquivo app.config de origem não é modificado. Você pode desabilitar esse recurso modificando o arquivo de projeto para o aplicativo ou desmarcando uma caixa de seleção nas propriedades do projeto no Visual Studio.

Desativar através das propriedades do projeto

Se você tiver o Visual Studio 2017 versão 15.7 ou posterior, poderá desabilitar os redirecionamentos de vinculação 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 Aplicativo, desmarque a opção Redirecionamentos de vinculação de geração automática.

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

  3. Pressione Ctrl+S para salvar a alteração.

Desativar manualmente no arquivo de projeto

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

    • No Visual Studio, selecione o projeto no Gerenciador de Soluções e escolha Abrir Pasta no Explorador de Arquivos no menu de atalho. No Explorador de Arquivos, localize o arquivo de projeto (.csproj ou .vbproj) e abra-o no Bloco de Notas.
    • No Visual Studio, no Gerenciador de Soluções, clique com o botão direito do mouse no projeto e escolha Descarregar projeto. Clique com o botão direito do mouse no projeto descarregado novamente e escolha Editar [projectname.csproj].
  2. No arquivo de projeto, localize a seguinte entrada de propriedade:

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    
  3. Alterar true para false:

    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
    

Ativar redirecionamentos de vinculação automática manualmente

Você pode habilitar redirecionamentos de vinculação automática em aplicativos existentes destinados a versões mais antigas do .NET Framework ou em casos em que você não é solicitado automaticamente a adicionar um redirecionamento. Se você estiver direcionando uma versão mais recente do .NET Framework, mas não for solicitado automaticamente a adicionar um redirecionamento, provavelmente obterá uma saída de compilação que sugere o remapeamento de assemblies.

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

    • No Visual Studio, selecione o projeto no Gerenciador de Soluções e escolha Abrir Pasta no Explorador de Arquivos no menu de atalho. No Explorador de Arquivos, localize o arquivo de projeto (.csproj ou .vbproj) e abra-o no Bloco de Notas.
    • No Visual Studio, no Gerenciador de Soluções, clique com o botão direito do mouse no projeto e escolha Descarregar projeto. Clique com o botão direito do mouse no projeto descarregado novamente e escolha Editar [projectname.csproj].
  2. Adicione o seguinte elemento ao primeiro grupo de propriedades de configuração (sob a <marca PropertyGroup> ):

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    

    A seguir mostra um arquivo 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. Compile seu aplicativo.

Habilitar redirecionamentos de vinculação automática em aplicativos Web

Os redirecionamentos de vinculação automática são implementados de forma diferente para aplicativos Web. Como o arquivo de configuração de origem (web.config) deve ser modificado para aplicativos Web, os redirecionamentos de vinculação não são adicionados automaticamente ao arquivo de configuração. No entanto, o Visual Studio notifica você sobre conflitos de vinculação e você pode adicionar redirecionamentos de vinculação para resolver os conflitos. Como você sempre é solicitado a adicionar redirecionamentos de vinculação, não é necessário desabilitar explicitamente esse recurso para um aplicativo Web.

Para adicionar redirecionamentos de vinculação a um arquivo web.config :

  1. No Visual Studio, compile o aplicativo e verifique se há avisos de compilação.

    Aviso de compilação para conflitos de referência de montagem.

  2. Se houver conflitos de vinculação de assembly, um aviso será exibido. Clique duas vezes no aviso ou selecione o aviso e pressione Enter.

    Uma caixa de diálogo que permite adicionar automaticamente os redirecionamentos de vinculação necessários ao arquivo web.config de origem é exibida.

    Caixa de diálogo de permissão de redirecionamento de vinculação.

Consulte também