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?

1voto

Naumaan Shaikh Punkte 19

Wenn Sie Änderungen an den Paketen vorgenommen haben - öffnen Sie die sln erneut. Das hat bei mir funktioniert!

1voto

user8128167 Punkte 5968

Bitte beachten Sie, dass ich dieses Problem gelöst habe, indem ich AutoGenerateBindingRedirects direkt nach TargetFramework in der csproj-Datei platziert habe:

net462
true

1voto

Prince Owen Punkte 526

Sie könnten den Dotnet CLI mit vollständiger Diagnoseausgabe ausführen, um bei der Suche nach dem Problem zu helfen.

dotnet run --verbosity diagnostic >> full_build.log

Nach Abschluss des Builds können Sie durch die Protokolldatei (full_build.log) nach dem Fehler suchen. Die Suche nach "a conflict" sollte Sie direkt zum Problem führen.

0voto

Tom Makin Punkte 3135

Ich bin gerade auf dieses Problem gestoßen, nachdem ich ein Paket von NuGet auf lokal referenzierte DLLs umgestellt habe. Das Problem waren alte Laufzeit-Bindungseinstellungen in app.config.

0voto

Auri Rahimzadeh Punkte 2015

Ich habe festgestellt, dass manchmal NuGet-Pakete (was ich vermute, sind) .NET Core benötigte Komponenten oder andere Elemente installieren, die mit dem bereits installierten Framework in Konflikt stehen. Meine Lösung bestand darin, die Projektdatei (.csproj) zu öffnen und diese Referenzen zu entfernen. Zum Beispiel werden System.IO, System.Threading und ähnliches hinzugefügt, wenn Microsoft.Bcl über ein kürzlich installiertes NuGet-Paket eingebunden wird. Es gibt keinen Grund, spezifische Versionen davon in meinen Projekten zu haben, also entferne ich die Referenzen und das Projekt baut sich. Hoffentlich hilft das.

Sie können in Ihrer Projektdatei nach "reference" suchen und die Konflikte entfernen. Wenn sie im System enthalten sind, dann loswerden und der Build sollte funktionieren. Dies beantwortet möglicherweise nicht alle Fälle dieses Problems - ich möchte sicherstellen, dass Sie wissen, was bei mir funktioniert hat :)

Beispiel für das, was ich auskommentiert habe:

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