432 Stimmen

Es wurden Konflikte zwischen verschiedenen Versionen derselben abhängigen Assembly gefunden, die nicht aufgelöst werden konnten.

Wenn ich meine Lösung reinige und dann aufbaue, die mehrere Projekte enthält, berichtet das Ausgabefenster, dass der Build erfolgreich war. Wenn ich jedoch das Fehlerlistenfenster ansehe, zeigt es mir diese Warnung:

Es wurden Konflikte zwischen verschiedenen Versionen derselben abhängigen Assembly gefunden, die nicht aufgelöst werden konnten. Diese Referenzkonflikte sind im Buildprotokoll aufgeführt, wenn die Protokollverbosity auf ausführlich eingestellt ist. C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets

Wenn ich auf diese Nachricht doppelklicke, wird die Datei C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets geöffnet, aber ich verstehe nichts darin.

Ich benutze Visual Studio Express 2013 für das Web.

Wie finde ich heraus, was falsch ist und mit welcher DLL, und wie mache ich dann die Warnung verschwinden?

0voto

car1bo Punkte 11

Wie in den anderen Antworten erwähnt, setzen Sie das Ausgabeprotokoll auf detailliert und suchen Sie dort nach Konflikten, das wird Ihnen sagen, wo Sie als nächstes hinschauen müssen.

In meinem Fall hat es mich in verschiedene Richtungen geschickt, um nach der Quelle der Verweise zu suchen, aber am Ende stellte sich heraus, dass das Problem eines meiner portablen Klassenbibliotheksprojekte war, es zielt auf die falsche Version ab und zog seine eigene Version der Verweise ein, daher die Konflikte. Ein schnelles Neuausrichten und das Problem war gelöst.

0voto

raV720 Punkte 422

Ich hatte diese Warnung nach der Migration zu Package Reference. Im Diagnoseausgabefenster gab es Informationen, dass die Bibliothek von derselben Bibliothek selbst referenziert wurde. Es könnte ein Bug des neuen Package Reference sein. Die Lösung bestand darin, AutoGenerateBindingRedirects zu aktivieren und die benutzerdefinierte Bindungsweiterleitung zu löschen.

0voto

Andrew Punkte 1485

Ich folgte dem Rat mehrerer der Antworten hier, um herauszufinden, was falsch war, aber keine der Antworten schien zu erklären, wie man es beheben kann. Mein Problem war, dass eine Referenz eine andere Version einer zweiten Referenz benötigte. Also war Newtonsoft in Version 6, aber eine andere DLL wollte 4.5. Dann habe ich Newtonsoft aktualisiert, wie es eine der anderen Antworten vorgeschlagen hatte, und das machte die Dinge nur schlimmer.

Also habe ich tatsächlich meine Newtonsoft-Installation downgegraded und die Warnung ist verschwunden (VS 2017):

Klicken Sie mit der rechten Maustaste auf Verweise im Solution Explorer und wählen Sie NuGet-Pakete verwalten... Unter dem Tab "Installiert" finden Sie Newtonsoft (oder was auch immer Ihr Konflikt ist). Auf der rechten Seite erscheint ein Dropdown neben "Version", das Sie auf ältere Versionen ändern können. Es war mir nicht offensichtlich, dass dieses Dropdown zum Downgrade verwendet werden konnte.

0voto

Jonathan Applebaum Punkte 5139

VS 2017, MVC-Projekt

Ich weiß nicht warum, aber für mich war die Lösung für dieses Problem, ein out Parameter aus der Signatur einer Model-Methode zu entfernen, die aus der Controller-Aktionsmethode aufgerufen wurde. Das ist sehr seltsames Verhalten, aber das war die Lösung für mein Problem.

0voto

Ich habe den MSBuild-Verbosity auf Diagnostic geändert, konnte aber nicht herausfinden, wo das Problem lag. Daher hatte ich gemäß den obigen Antworten diesen Code in der app.config:

Also habe ich einfach das erste System, Version von 4.0.0.0 auf 12.0.0.0 geändert und mein Projekt hat funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X