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.
Contenu connexe
S’applique à
Toutes les versions de MSBuild