Wir verlegen einen Teil unseres Servers auf .net 4.0. Wir haben bereits den ersten Schritt zu Vs2010 gemacht, aber das Zielframework eines Projekts nicht verändert.
Als zweiten Schritt verschiebe ich einen bestimmten Teil unseres Servers auf Ziel 4.0, damit wir einige der neuen Funktionen nutzen können.
Ich habe ein Problem beim Aufruf von TLBexp.exe in einer DLL der Klassenbibliothek mit dem Ziel 4.0 festgestellt. Diese DLL verweist auch auf viele DLLs, die 2.0 als Ziel haben.
Ich bekomme den Fehler: TlbExp: Fehler TX0000: Datei oder Assembly 'file: Library.dll' oder eine seiner Abhängigkeiten konnte nicht geladen werden. Diese Assembly wird von einer Laufzeit erstellt, die neuer ist als die aktuell geladene Laufzeit und kann nicht geladen werden.
Ich rufe den TLBExp auf, der mit folgendem Inhalt geliefert wird: Microsoft SDKs \ Windows \ v7.0A \ bin \ In dem Befehl, den ich in der VS2010-Befehlsaufforderung anrufe, referenziere ich v4.0.30319 Binärdateien (wie mscorlib.tlb)
Läuft TLB auf einer 4.0 DLL, die 2.0-Bibliotheken erlaubt? Wenn ja dann irgendeinen Grund, warum ich diesen Fehler bekomme.
Hier ist der genaue Befehlsaufruf, den ich verwende: "C: \ Programme \ Microsoft SDKs \ Windows \ v7.0A \ bin \ tlbexp.exe" / silent / win32 /tlreference:"C:\Windows\Microsoft.NET \ Framework \ v4.0.30319 \ mscorlib.tlb "/tlbreference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.tlb" /tlbreference:"C:\Windows\Microsoft.NET\Framework\v4 .0.30319 \ System.Windows.Forms.tlb "/tlbreference:"C:\Windows\system32\stdole2.tlb" C: \ Dev \ Library.dll
Danke
Ich hatte eine Assembly mit dem Ziel 4.0, die auf eine andere Assembly verweist, die ein Zielframework von 3.5 hatte.
Als Ergebnis erhielt ich den gleichen Fehler bei einem "Post-Build" -Schritt. Durch Versuch und Irrtum entdeckte ich, dass die Version von TLBExp, die in diesem Ordner gefunden wurde: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\
die TLB-Datei erfolgreich generieren konnte.
HTH!