Cómo: Habilitar y deshabilitar redireccionamiento de enlaces automático

Al compilar aplicaciones de escritorio en Visual Studio destinadas a .NET Framework 4.5.1 y versiones posteriores, es posible que las redirecciones de enlace se agreguen automáticamente al archivo de configuración de la aplicación para invalidar la unificación de ensamblados. Las redirecciones de enlace se agregan si la aplicación o sus componentes hacen referencia a más de una versión del mismo ensamblado, incluso si se especifican manualmente las redirecciones de enlace en el archivo de configuración de la aplicación. La característica de redireccionamiento automático de enlaces afecta a las aplicaciones de escritorio destinadas a .NET Framework 4.5.1 o una versión posterior. Si no ha habilitado o deshabilitado explícitamente el redireccionamiento de enlaces generado automáticamente y actualiza un proyecto existente, la característica se habilita automáticamente.

En el caso de las aplicaciones web, cuando Visual Studio encuentra un conflicto de enlace, le solicitará que agregue un redireccionamiento de enlace para resolver el conflicto.

Puede habilitar el redireccionamiento automático de enlaces para aplicaciones existentes destinadas a versiones anteriores de .NET Framework (4.5 y versiones anteriores). Puede deshabilitar esta característica si quiere crear manualmente el redireccionamientos de enlace.

Importante

A partir de Visual Studio 2022, Visual Studio ya no incluye componentes de .NET Framework para .NET Framework 4.0 - 4.5.1, porque estas versiones ya no se admiten. En Visual Studio 2022 y versiones posteriores no se pueden compilar aplicaciones destinadas a las versiones 4.0 a 4.5.1 de .NET Framework. Para seguir creando estas aplicaciones, puede usar Visual Studio 2019 o una versión anterior.

Deshabilitación de redirecciones de enlace automáticas en aplicaciones de escritorio

Las redirecciones de enlace automáticas están habilitadas de forma predeterminada para las aplicaciones de escritorio de Windows destinadas a .NET Framework 4.5.1 y versiones posteriores. Las redirecciones de enlace se agregan al archivo de configuración de salida (app.config) cuando se compila la aplicación. Los redireccionamientos invalidan la unificación del ensamblado que, de lo contrario, podría tener lugar. El archivo app.config de origen no se modifica. Puede deshabilitar esta característica modificando el archivo de proyecto de la aplicación o desactivando una casilla en las propiedades del proyecto en Visual Studio.

Deshabilitación mediante las propiedades del proyecto

Si tiene Visual Studio 2017 versión 15.7 o posterior, puede deshabilitar las redirecciones de enlace generadas automáticamente en las páginas de propiedades del proyecto.

  1. Haga clic con el botón derecho en el proyecto en el Explorador de soluciones y seleccione Propiedades.

  2. En la página Aplicación, desactive la opción Generar automáticamente redireccionamientos de enlace.

    Si no ve la opción, deberá deshabilitar manualmente la característica en el archivo del proyecto.

  3. Presione Ctrl+S para guardar el cambio.

Deshabilitación manual del archivo del proyecto

  1. Abra el archivo de proyecto para editarlo mediante uno de los métodos siguientes:

    • En Visual Studio, seleccione el proyecto en el Explorador de soluciones y elija Abrir carpeta en el Explorador de archivos en el menú contextual. En el Explorador de archivos, busque el archivo de proyecto (.csproj o .vbproj) y ábralo en Bloc de notas.
    • En Visual Studio, en el Explorador de soluciones, haga clic con el botón derecho en el proyecto y elija Descargar proyecto. Vuelva a hacer clic con el botón derecho en el proyecto descargado y elija Editar [projectname.csproj].
  2. En el archivo de proyecto, busque la siguiente entrada de propiedad:

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    
  3. Cambie true a false:

    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
    

Habilitación de redirecciones de enlace automáticas manualmente

Puede habilitar las redirecciones de enlace automáticas en las aplicaciones existentes destinadas a versiones anteriores de .NET Framework, o en casos en que no se le pide automáticamente que agregue una redirección. Si su objetivo es una versión más reciente de .NET Framework, pero no se le pide automáticamente que agregue una redirección, probablemente obtendrá una salida de la compilación que le sugiere reasignar los ensamblados.

  1. Abra el archivo de proyecto para editarlo mediante uno de los métodos siguientes:

    • En Visual Studio, seleccione el proyecto en el Explorador de soluciones y elija Abrir carpeta en el Explorador de archivos en el menú contextual. En el Explorador de archivos, busque el archivo de proyecto (.csproj o .vbproj) y ábralo en Bloc de notas.
    • En Visual Studio, en el Explorador de soluciones, haga clic con el botón derecho en el proyecto y elija Descargar proyecto. Vuelva a hacer clic con el botón derecho en el proyecto descargado y elija Editar [projectname.csproj].
  2. Agregue el elemento siguiente al primer grupo de propiedades de configuración (bajo la etiqueta <PropertyGroup>):

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    

    En el ejemplo siguiente se muestra un archivo de proyecto con el elemento insertado:

    <?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 la aplicación.

Habilitación de las redirecciones de enlace automáticas en aplicaciones web

Las redirecciones de enlace automáticas se implementan de forma diferente para las aplicaciones web. Puesto que el archivo de configuración de origen (web.config) debe modificarse para las aplicaciones web, las redirecciones de enlace no se agregan de forma automática al archivo de configuración. Sin embargo, Visual Studio le notifica los conflictos de enlace, por lo que podrá agregar redirecciones de enlace para resolverlos. Puesto que siempre se le preguntará si desea agregar redirecciones de enlace, no necesita deshabilitar explícitamente esta característica para una aplicación web.

Para agregar redirecciones de enlace a un archivo web.config:

  1. En Visual Studio, compile la aplicación y compruebe si hay advertencias de compilación.

    Build warning for assembly reference conflicts.

  2. Si hay conflictos de enlace de ensamblados, se mostrará una advertencia. Haga doble clic en la advertencia o seleccione la advertencia y presione Entrar.

    Aparecerá un cuadro de diálogo que permite agregar automáticamente las redirecciones de enlace necesarias para el archivo web.config de origen.

    Binding redirect permission dialog.

Consulte también