0

Ich benutze NServiceBus in einer komplizierten Lösung (150 Projekte, viele von ihnen verwenden NSB). Bis zur letzten Nacht, als ich es nicht mehr aushalten konnte, hatte jedes Projekt eigene Zielverzeichnisse (./bin/debug und ./bin/release). Aufgrund der Abhängigkeiten zwischen meinen Projekten habe ich die gleichen Binärdateien mehrfach erstellt und neu erstellt. Aus diesem Grund haben wir uns dazu entschlossen, in ein gemeinsames Ausgabeverzeichnis für das gesamte Projekt zu wechseln, was die Build-Zeit der Lösung erheblich verbessert. So weit so gut ...NServiceBus scheint einen harten Verweis auf Version 2.0.0.0 über Ionic.Zip.dll

aber als ich versuchte, mein Projekt zu starten, schlägt fehl, es zu starten mir den Fehler geben:

Warning 1 : 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. C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets 1697 5 My.Assembly.Goes.Here 

Uh, oh. Also, ich aufdrehen pflichtschuldigst das Protokoll Ausführlichkeit, sauber und neu erstellen den ganzen Schlamassel, das in der Log-Ausgabe zu finden:

30>------ Build started: Project: My.Assembly.Goes.Here, Configuration: Debug Any CPU ------ 
28>Building with tools version "12.0". 

<Lots of stuff omitted...> 

28> There was a conflict between "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" and "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes". 
28>  "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" was chosen because it was primary and "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes" was not. 
28>  References which depend on "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" [C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\mscorlib.dll]. 

<etcetera...> 

Out kommt Dependency Walker (großes Werkzeug, btw). OK, also was hängt vom alten 2.0 Framework ab? Geben Sie für jede Bezugnahme auf mscorlib und ... Eines dieser Dinge ist nicht wie die anderen ...

enter image description here

NServiceBus.Hosting.Azure nimmt eine Abhängigkeit von Ionic.Zip.dll, die wiederum, nimmt eine Abhängigkeit von der Version 2.0.0.0 von mscorlib.dll. Autsch. FWIW, die Version von NServiceBus.Hosting.Azure, die dies tut, ist 5.3.2.0.

mir Das sieht hier das Problem ähnlich zu sein: https://github.com/Particular/NServiceBus/issues/664

Kann ich mit einer Assembly Binding Redirect dieses Problem umgehen? Gibt es eine Möglichkeit für mich, NSB zu sagen, Ionic.Zip.dll mitzuteilen, dass die Version 4.0.0.0 von mscorlib.dll in Ordnung ist, vielen Dank?

Oder ist das ein NSB-Fehler?

Vielen Dank im Voraus.

+0

Wir eröffneten [Problem hier] (https: // Github .com/Bestimmt/NServiceBus.Host.AzureCloudService/issues/38) –

+0

Danke Sean. Alle Updates zum Zeitpunkt für ein Patch geschätzt. Wir sind hier in einem Block - wir erforschen andere Pfade (müssen vielleicht NSB auf V5 aufrüsten, aber das ist an dieser Stelle für uns ein schwerer Anstieg). –

Antwort

2

Eine verbindliche Umleitung auf mscorlib meiner Meinung nach funktionieren sollte, oder Sie könnten versuchen, eine auf eine neuere Version von dotnetziplib umleiten Bindung (ionische), die Ziele 4.0

+0

Ich habe mit verbindlichen Weiterleitungen gespielt und kann es noch nicht ausführen. Ich werde dich wissen lassen, ob es funktioniert. –

+0

Nie geschafft, die verbindlichen Umleitungen zum Funktionieren zu bringen. Wird eine neuere Version von dotnetziplib recherchieren - vielleicht hilft das ... –

Verwandte Themen