Como habilitar e desabilitar o redirecionamento automático de associações

Observação

Este artigo é específico para aplicativos .NET Framework. 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 que para .NET Framework 4.5.1 e versões posteriores, os redirecionamentos de associação podem ser adicionados automaticamente ao arquivo de configuração do aplicativo para substituir a unificação do assembly. Redirecionamentos de associação serão adicionados se o seu aplicativo ou seus componentes fizerem referência a mais de uma versão do mesmo assembly, mesmo se você especificar manualmente redirecionamentos de associação no arquivo de configuração para seu aplicativo. O recurso de redirecionamento de associação automática afeta os aplicativos de área de trabalho para .NET Framework 4.5.1 ou versão posterior. Se você não tiver habilitado ou desabilitado explicitamente o redirecionamento de associação gerado automaticamente e atualizar um projeto existente, o recurso será habilitado de forma automática.

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

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

Importante

A partir da versão 2022, o Visual Studio não inclui mais componentes .NET Framework para .NET Framework 4.0-4.5.1 porque não há mais suporte a essas versões. O Visual Studio 2022 e versões posteriores não podem criar aplicativos para .NET Framework 4.0 por meio do .NET Framework 4.5.1. Para continuar criando esses aplicativos, você poderá usar o Visual Studio 2019 ou uma versão anterior.

Desabilitar redirecionamentos de associação automáticos em aplicativos da área de trabalho

Os redirecionamentos de associação automática estão habilitados por padrão para aplicativos de área de trabalho do Windows para .NET Framework 4.5.1 e versões posteriores. Os redirecionamentos de associaçã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. O arquivo app.config de origem não é modificado. Você pode desabilitar esse recurso modificando o arquivo de projeto do aplicativo ou desmarcando uma caixa de seleção nas propriedades do projeto no Visual Studio.

Desabilitar por meio das propriedades do projeto

Se você tiver o Visual Studio 2017 versão 15.7 ou posterior, poderá desabilitar os redirecionamentos de associaçã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 Gerar automaticamente redirecionamentos de associação.

    Se você não vir a opção, precisará desabilitar manualmente o recurso no arquivo do projeto.

  3. Pressione Ctrl+S para salvar as alterações.

Desabilitar 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 e escolha Editar [nomedoprojeto.csproj].
  2. No arquivo de projeto, localize a seguinte entrada de propriedade:

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

    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
    

Habilitar redirecionamentos de associação automáticos manualmente

Você pode habilitar redirecionamentos de associação automáticos em aplicativos existentes destinados a versões anteriores do .NET Framework ou caso o sistema não solicite automaticamente a adição de um redirecionamento. Se seu aplicativo for destinado a uma versão mais recente do .NET Framework, mas o sistema não solicitar automaticamente a adição de um redirecionamento, provavelmente, a saída de compilação solicitará o remapeamento dos 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 e escolha Editar [nomedoprojeto.csproj].
  2. Adicione este elemento ao primeiro grupo de propriedades de configuração (na marca <PropertyGroup>):

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    

    O código abaixo mostra um exemplo de arquivo de projeto com o elemento:

    <?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 associação automática em aplicativos Web

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

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

  1. No Visual Studio, compile o aplicativo e verifique a existência de avisos de compilação.

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

  2. Se houver conflitos de associaçã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 da associação necessários ao arquivo web.config de origem é exibida.

    Diálogo de permissão de redirecionamento de associação.

Confira também