Warum bin ich immer Konnte nicht geladen, Datei oder assembly-Fehler, die auf einem System.Konfigurations-DLL bei der Verwendung von framework 4.0?
Sofort, nachdem wir ein Upgrade auf visual studio 2010 und 4.0 framework-Rumpf bauen begonnen, brechen Sie mit dem Konnte nicht geladen, Datei oder assembly error.
Wir haben festgestellt, dass ein 3.5 Projekt konnte nicht Referenz-4.0-Projekt, sonst würden wir diese Fehlermeldung erhalten, weil, wie der Fehler besagt, Diese Baugruppe wurde von einer Laufzeit, die neuer als die derzeit geladene Laufzeit ist und kann nicht geladen werden.
Wir haben da dieses Problem gelöst, und der Stamm hat den Bau in Ordnung.
Ich habe vor kurzem eine Filiale und tag, jedoch, und plötzlich dieser Fehler tauchte auf, wenn ich versuche, den Zweig; mit Ausnahme der Fehler in Bezug auf eine unserer eigenen .net 4.0 Projekt ein Verweis auf System.Konfigurations-DLL.
Towps.Namespace.MyService.csproj im Kern.Dev\Towps\Projetcs\Application\MyService:
RG0000: Konnte nicht geladen werden referenzierte assembly"C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll".
Fing eine BadImageFormatException sagen "Konnte nicht geladen, Datei oder assembly
'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll' oder eine Ihrer Abhängigkeiten.
Diese Baugruppe wurde von einer Laufzeit, die neuer als die derzeit geladene Laufzeit ist und kann nicht geladen werden.". in ResGen(0, 0)
Ich habe versucht, die version-Eigenschaft auf das system.Konfigurations-DLL ref zu wahren.
Ich sehe es Eigenschaften, die die runtime-version ist v4.0.30319 und die Version 4.0.0.0.
Der Pfad zu der DLL ref C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Configuration.dll was für mich gut aussieht.
Den Ziel-framework für die csproj-Datei, die CrusieControl ist mit MSBuild zu bauen versuchen ist targeting framework 4.0. Wieder scheint in Ordnung.
Baut es in der IDE für die beiden Rumpf - & Filiale. Cruise Control bauen Sie in den Kofferraum. Die branch-build schlägt fehl, wenn CrusieControl versucht zu bauen.
Irgendwelche Ideen, was könnte passiert sein?
Könnte es sein eine MSBuild-mismatch aber ich habe gescannt, die config-Dateien und msbuild-proj-Dateien, CruiseControl verwendet und es gibt keine Verweise auf ältere MSBuilds; was Sinn macht, da alle diejenigen, die aktualisiert wurden, um den Stamm zu arbeiten.
Zweig war einfach eine Kopie der Kofferraum so ich habe Schwierigkeiten bei der Bestimmung, was könnte der Unterschied sein!
InformationsquelleAutor der Frage topwik | 2010-07-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es stellt sich heraus, dass, nachdem ich verzweigt, alle .proj-Dateien in meine Filiale build-Verzeichnis, cc.net verwendet wurden wieder mit ToolVerison="3.5".
Ich dachte ich verpflichtet, alle ToolsVersion="4.0" proj-und config-änderungen an den Stamm, von dem ich den Zweig, der erwiesenermaßen nicht.
InformationsquelleAutor der Antwort topwik
Den Unterschied könnte leicht sein Hinweis Pfade, die nicht mehr Futter, bis auf den neuen Zweig. Allerdings gibt es nicht eine log-gehen in Ihrer Beschreibung. Was sind die Kommandozeilen-Optionen, die Sie auf der Durchreise sind? In
ccnet.config
und auch alle anderen, die sich, wennccnet.config
verweist auf ein build-Skript aufruft, msbuild, statt Sie direkt zu einem.sln
oder.csproj
Datei.Schalten
/v:d for the msbuild
auf BEIDE zu vergleichen und dann die Referenz Auflösungen (oder bauen um, etc..) für Montage-oder anderen beteiligten/in der Nähe.Sind auch Sie, die den Pfad zu msbuild auf beiden?
msbuild4="C:\WINNT\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"
in Ihrem
ccnet.config
?Ich habe es gesehen, Bericht der 2.0 build ausführbaren Datei während einer
msbuild4 /tv:3.5
:so, die scheinen nicht sehr nützlich.
Ich würde gerne sehen, das die Konfiguration für beide Stamm und Zweig.
Ich weiß, ich hatte einige Pfade in die buildscripts, die fehlgeschlagen in meiner Filiale, da gab es einen hartcodierten Pfad, der nicht gültig für die Filiale. Ich musste passen Sie die
ccnet.config
zu übergeben Argumente, die für diese Elemente zu überschreiben, für die Branche.InformationsquelleAutor der Antwort Maslow
Bitte überprüfen .net framework-version unterstützt, die von Ihrem client. Zum Beispiel sharepoint2010 nicht-support-dll gebaut von 4.0 oder höher .net-framework. Es unterstützt nur 3,5 oder unten.
InformationsquelleAutor der Antwort raja
Ein bisschen spät ich weiß, aber wenn jemand anderes dieses Problem hat, versuchen Sie, die RuntimeVersion in Ihr .dna-Datei, wenn es nicht bereits vorhanden ist.
InformationsquelleAutor der Antwort Blueberry