Partager via


code de diagnostic MSB3247

Cet article décrit le code d’erreur MSB3247.

Texte du message

MSB3247: Found conflicts between different versions of the same dependent assembly. In Visual Studio, double-click this warning (or select it and press Enter) to fix the conflicts; otherwise, add the following binding redirects to the 'runtime' node in the application configuration file:

Remarques

Cette erreur se produit lors de la génération de projets .NET Framework. Elle est générée par la tâche ResolveAssemblyReference. Il existe deux modes dans lesquels ResolveAssemblyReference peut fonctionner : soit il peut être configuré pour générer des redirections de liaison, soit non. Si elle n’est pas définie, cette erreur se produit lorsqu’un conflit se produit entre deux versions d’assembly différentes de l’assembly dépendant.

Résolution

Tenez compte des solutions suivantes :

Solution 1 : Configurer MSBuild pour générer automatiquement des redirections de liaison

Vérifiez la propriété AutoGenerateBindingRedirects, qui configure ResolveAssemblyReference afin de générer automatiquement les redirections. Vous pouvez définir cette propriété dans Visual Studio. Ouvrez Propriétés du Projet (Alt+Entrer), ouvrez l’onglet Application, puis cochez la case Générer automatiquement les redirections de liaison.

Ou, pour générer des redirections de liaison automatiquement en modifiant le fichier projet, ajoutez la propriété suivante dans l’un des éléments PropertyGroup dans le fichier projet :

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

Consultez Activer et désactiver la redirection automatique de liaisons.

Solution 2 : Ajouter des redirections de liaison au fichier app.config ou web.config

Vous pouvez ajouter les redirections de liaison manuellement dans le fichier de configuration (par exemple,app.config ou web.config) comme suggéré dans le texte de sortie d’avertissement. Cette option est appropriée si vous choisissez de ne pas autoriser MSBuild à générer automatiquement les redirections de liaison, peut-être parce que vous souhaitez qu’elles soient explicitement répertoriées dans les fichiers de configuration pour réduire l’ambiguïté.

Si vous choisissez de ne pas générer automatiquement de redirections de liaison, mettez à jour le fichier app.config (ou web.config) pour ajouter explicitement les redirections de liaison. Le message d’avertissement fournit le code XML pour les redirections de liaison que vous pouvez copier et coller dans l’élément runtime du fichier app.config.

Alternativement, MSBuild écrit des redirections de liaison vers un fichier de sortie si la propriété GenerateBindingRedirectsOutputType est vraie. Elle est automatiquement définie sur true dans la build .NET Framework pour les fichiers de sortie exécutables, mais vous pouvez également la définir sur true manuellement pour .dll sortie. Lorsque MSBuild génère les redirections de liaison, elle les ajoute à un fichier .config dans le répertoire de sortie, qui contient également toutes les redirections de liaison trouvées dans le fichier app.config ou web.config. Vous pouvez copier les redirections de liaison à partir de là et coller le code XML dans un fichier app.config sous l’élément runtime si vous souhaitez qu’ils soient explicitement visibles, ou si vous ne souhaitez pas que MSBuild les génère automatiquement.

Consultez Résolution des problèmes de références d’assemblage.

S’applique à

Toutes les versions de MSBuild