Comment : activer et désactiver la redirection de liaison automatique

Lorsque vous compilez des applications de bureau dans Visual Studio qui ciblent .NET Framework 4.5.1 et versions ultérieures, les redirections de liaison peuvent être ajoutées automatiquement au fichier de configuration d’application pour remplacer l’unification des assemblys. Les redirections de liaison sont ajoutées si votre application ou ses composants font référence à plusieurs versions du même assembly, même si vous spécifiez manuellement des redirections de liaison dans le fichier de configuration de votre application. La fonctionnalité de redirection de liaison automatique affecte les applications de bureau qui ciblent .NET Framework 4.5.1 ou version ultérieure. Si vous n’avez pas activé ou désactivé explicitement la redirection de liaison générée automatiquement et que vous mettez à niveau un projet existant, la fonctionnalité est automatiquement activée.

Pour les applications web, lorsque Visual Studio rencontre un conflit de liaison, il vous invite à ajouter une redirection de liaison pour résoudre le conflit.

Vous pouvez activer la redirection de liaison automatique pour les applications existantes qui ciblent les versions précédentes de .NET Framework (4.5 et versions antérieures). Vous pouvez désactiver cette fonctionnalité si vous souhaitez créer manuellement des redirections de liaison.

Important

À compter de Visual Studio 2022, Visual Studio n’inclut plus les composants .NET Framework pour .NET Framework 4.0 - 4.5.1, car ces versions ne sont plus prises en charge. Visual Studio 2022 et ses versions ultérieures ne peuvent pas générer d’applications ciblant .NET Framework 4.0 à .NET Framework 4.5.1. Pour continuer à créer ces applications, vous pouvez utiliser Visual Studio 2019 ou version antérieure.

Désactiver les redirections de liaison automatiques dans les applications de bureau

Les redirections de liaison automatique sont activées par défaut pour les applications de bureau Windows qui ciblent .NET Framework 4.5.1 et versions ultérieures. Les redirections de liaison sont ajoutées au fichier de configuration de sortie (app.config) lorsque l’application est compilée. La redirection remplace l’unification d’assemblys qui pourrait se produire, dans le cas contraire.Les redirections remplacent l’unification de l’assembly qui peut autrement avoir lieu. Le fichier app.config source n’est pas modifié. Vous pouvez désactiver cette fonctionnalité en modifiant le fichier projet de l’application ou en désélectionnant une case à cocher dans les propriétés du projet dans Visual Studio.

Désactiver via les propriétés du projet

Si vous disposez de Visual Studio 2017 version 15.7 ou ultérieure, vous pouvez désactiver les redirections de liaison générées automatiquement dans les pages de propriétés du projet.

  1. Cliquez avec le bouton droit sur le projet dans l’Explorateur de solutions, puis sélectionnez Propriétés.

  2. Dans la page Application, décochez l’option Générer automatiquement des redirections de liaison.

    Si vous ne voyez pas l’option, vous devez désactiver manuellement la fonctionnalité dans le fichier projet.

  3. Appuyez sur Ctrl+S pour enregistrer la modification.

Désactiver manuellement dans le fichier projet

  1. Ouvrez le fichier projet pour modification à l’aide de l’une des méthodes suivantes :

    • Dans Visual Studio, sélectionnez le projet dans l’Explorateur de solutions, puis choisissez Ouvrir le dossier dans l’Explorateur de fichiers dans le menu contextuel. Dans l’Explorateur de fichiers, recherchez le fichier projet (.csproj ou .vbproj) et ouvrez-le dans le Bloc-notes.
    • Dans l’Explorateur de solutions de Visual Studio, cliquez avec le bouton droit sur le projet et choisissez Décharger le projet. Cliquez à nouveau avec le bouton droit sur le projet déchargé, puis choisissez Modifier [nom_projet.csproj].
  2. Dans le fichier projet, recherchez l'entrée de propriété suivante :

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    
  3. Remplacez true par false :

    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
    

Activer manuellement les redirections de liaison automatiques

Vous pouvez activer les redirections de liaison automatiques dans les applications existantes qui ciblent des versions plus anciennes de .NET Framework ou quand vous n’êtes pas automatiquement invité à ajouter une redirection. Si vous ciblez une version plus récente de .NET Framework mais que vous n’êtes pas automatiquement invité à ajouter une redirection, une sortie de génération vous suggérera probablement de remapper les assemblys.

  1. Ouvrez le fichier projet pour modification à l’aide de l’une des méthodes suivantes :

    • Dans Visual Studio, sélectionnez le projet dans l’Explorateur de solutions, puis choisissez Ouvrir le dossier dans l’Explorateur de fichiers dans le menu contextuel. Dans l’Explorateur de fichiers, recherchez le fichier projet (.csproj ou .vbproj) et ouvrez-le dans le Bloc-notes.
    • Dans l’Explorateur de solutions de Visual Studio, cliquez avec le bouton droit sur le projet et choisissez Décharger le projet. Cliquez à nouveau avec le bouton droit sur le projet déchargé, puis choisissez Modifier [nom_projet.csproj].
  2. Ajoutez l’élément suivant au premier groupe de propriétés de configuration (sous l’étiquette <PropertyGroup>) :

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    

    Le code suivant illustre un fichier de projet comportant l’élément :

    <?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. Compilez votre application.

Activer les redirections de liaison automatiques dans les applications web

Les redirections de liaison automatiques sont implémentées différemment pour les applications web. Comme le fichier de configuration source (web.config) doit être modifié pour les applications web, les redirections de liaison ne sont pas automatiquement ajoutées au fichier de configuration. Toutefois, Visual Studio vous informe des éventuels conflits de liaison et vous pouvez ajouter des redirections de liaison pour résoudre ces conflits. Comme vous êtes toujours invité à approuver ou non l’ajout des redirections de liaison, vous n’avez pas besoin de désactiver explicitement cette fonctionnalité pour une application web.

Pour ajouter des redirections de liaison vers un fichier web.config :

  1. Dans Visual Studio, compilez l'application et vérifiez les avertissements sur la génération.

    Build warning for assembly reference conflicts.

  2. En cas de conflit de liaison d’assembly, un avertissement s’affiche. Double-cliquez sur l’avertissement, ou sélectionnez l’avertissement, puis appuyez sur Entrée.

    Une boîte de dialogue apparaît qui vous permet d’ajouter automatiquement les redirections de liaison nécessaires vers le fichier web.config source.

    Binding redirect permission dialog.

Voir aussi