Des conflits ont été trouvés entre différentes versions du même assembly dépendant qui n'ont pas pu être résolus

Des conflits ont été trouvés entre différentes versions du même assembly dépendant qui n’ont pas pu être résolus

nota : Il y a un excellent article à ce sujet par @Nick Craver de SO que vous devriez lire

Bien que les autres réponses disent cela, elles ne le rendent pas explicite, donc je vais le faire…

Dans VS2013.2, pour réellement déclencher l’émission des informations citées, vous ne devez pas lire le message, qui dit :

C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.

Ceci est incorrect (ou du moins l’était pour certaines versions de Visual Studio - cela semble fonctionner correctement sur un VS2015 Update 3 ou ultérieur à jour). Au lieu de cela, réglez-le sur Diagnostic (depuis Tools->Options->Project and Solutions->Build and Run, définissez MSBuild project build output verbosity), après quoi vous verrez des messages tels que :

Il y avait un conflit entre “Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed” et “Newtonsoft.Json, Version=6.0.5.17707, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”.

  • “Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed” a été choisi parce qu’il était primaire et “Newtonsoft.Json, Version=6.0.5.17707, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed” ne l’était pas.

Ensuite

  • Ctrl-Alt-O pour aller à la fenêtre de sortie du Build

  • cherchez “was chosen” pour trouver le détail.

…Et oui, pour ceux qui regardent le détail du message [diagnostic], c’était une nouvelle pour cet ignorant qu’il y a une convention selon laquelle toutes les versions 6.x sont, en interne, Assembly Version 6.0.0.0, c’est-à-dire que seul le composant majeur SemVer entre dans l’Assembly Version :slight_smile: