Benutzer mit den meisten Antworten
Komischer Fehler nach Upgrade

Frage
-
Hallo zusammen,
habe gerade ein VS 2005 Projekt nach VS 2010 mit dem Assistenten migriert. Wenn ich jetzt kompiliere, bekomme ich den folgenden komischen Fehler:
Encountered multiple versions of the assembly with GUID '2df8d04c-5bfa-101b-bde5-00aa0044de52'. Try pre-importing one of these assemblies.
Betroffen ist wohl eine Datei "TlbImp". Die Assembly mit der GUID ist die "Microsoft.Office.Core"
Was hat das denn zu bedeuten? Was kann ich dagegen machen? Ich weiß gar nicht, wo ich da angreifen soll! Mit VS 2005 gab es keine Probleme bei derselben Solution.
Antworten
-
S,
da VS2010 bei COM-Interop etliches ändert, würde ich mal mindestens alle Office COM-Verweise entfernen (ggf Projekt+Studio schliessen, allfällige Interop.* Dateien löschen & Projekt wieder öffnen) und Verweise wieder hinzufügen.
Wenn es nichts nützt (oder weiteren Problemen bei legacy-COM Interop) dann alle Verweise neu.
Wenn trotzdem nichts nützt oder es schlimmer wird, dann hast du ja noch dein Backup. ;-)
- Als Antwort vorgeschlagen Frank Dzaebel Freitag, 14. Januar 2011 13:27
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 14. Januar 2011 16:32
-
Hallo SP.,
ja, das liegt an: [TlbImp: Encountered multiple versions of the assembly... | Microsoft Connect].
Man braucht normal natürlich nicht alle COM-Verweise herausnehmen (die Office-Verweise würde ich aber ggf. neu machen, wegen der PIA-Änderung), nur die, die verschiedene Versionen der gleichen Com-Lib referenzieren, was ja auch in der *.csproj einsehbar ist.
- Ein Möglichkeit evtl. trotzdem: Mache mal [RechteMaus auf die Projektmappe / "Projektmappe bereinigen"].
- Eine andere, schaue mal in der csproj nach gleichen Verweisen oder poste die hier (zumindest die References). Nimm nur die heraus (und ggf. die von Office).
ciao Frank- Als Antwort vorgeschlagen Frank Dzaebel Freitag, 14. Januar 2011 13:27
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 14. Januar 2011 16:32
-
Ist so gewesen, wie ich vermutet hatte. Die eingebundene DLL hatte noch Verweise auf die Office-DLL.
Problem erkannt, Problem gebannt ;-)
- Als Antwort vorgeschlagen Frank Dzaebel Freitag, 14. Januar 2011 13:27
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 14. Januar 2011 16:32
Alle Antworten
-
Hallo S
zT ein Bug
http://connect.microsoft.com/VisualStudio/feedback/details/565978/ähnliche
http://social.msdn.microsoft.com/Forums/en/vbinterop/thread/7fd534a9-1606-48ce-ad75-762760bdb9ed
=> alle COM-Verweise und Interop/PIA-Assembly -Dateien löschen, neu hinzufügen.
http://www.google.com/search?q=%22multiple+versions+of+the+assembly+with+GUID%22
-
S,
da VS2010 bei COM-Interop etliches ändert, würde ich mal mindestens alle Office COM-Verweise entfernen (ggf Projekt+Studio schliessen, allfällige Interop.* Dateien löschen & Projekt wieder öffnen) und Verweise wieder hinzufügen.
Wenn es nichts nützt (oder weiteren Problemen bei legacy-COM Interop) dann alle Verweise neu.
Wenn trotzdem nichts nützt oder es schlimmer wird, dann hast du ja noch dein Backup. ;-)
- Als Antwort vorgeschlagen Frank Dzaebel Freitag, 14. Januar 2011 13:27
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 14. Januar 2011 16:32
-
Hallo SP.,
ja, das liegt an: [TlbImp: Encountered multiple versions of the assembly... | Microsoft Connect].
Man braucht normal natürlich nicht alle COM-Verweise herausnehmen (die Office-Verweise würde ich aber ggf. neu machen, wegen der PIA-Änderung), nur die, die verschiedene Versionen der gleichen Com-Lib referenzieren, was ja auch in der *.csproj einsehbar ist.
- Ein Möglichkeit evtl. trotzdem: Mache mal [RechteMaus auf die Projektmappe / "Projektmappe bereinigen"].
- Eine andere, schaue mal in der csproj nach gleichen Verweisen oder poste die hier (zumindest die References). Nimm nur die heraus (und ggf. die von Office).
ciao Frank- Als Antwort vorgeschlagen Frank Dzaebel Freitag, 14. Januar 2011 13:27
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 14. Januar 2011 16:32
-
Ich denke, ich muss das morgen nochmals weiter analysieren. In der Solution sind allerdings viele C#-Projekte verlinkt bzw. eingebunden. Zusätzlich gibt es auch noch DLLs, die eingebunden werden. Wäre also doch denkbar, dass in einer DLL nun eine solche Office-DLL referenziert wird, die dann in einer der eingebundenen C#-Projekte eine Mehrdeutigkeit hervor ruft.
Das Entfernen der Office-DLL Referenzen hat bis jetzt leider noch nichts gebracht. Allerdings kam der Fehler erst wieder auf, als ich eine bestehende DLL (ebenfalls COM-Interop) eingebunden hab. Könnte also gut sein, dass die DLL dann eine weitere Office-Referenz im Bauch hat.
-
Ist so gewesen, wie ich vermutet hatte. Die eingebundene DLL hatte noch Verweise auf die Office-DLL.
Problem erkannt, Problem gebannt ;-)
- Als Antwort vorgeschlagen Frank Dzaebel Freitag, 14. Januar 2011 13:27
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 14. Januar 2011 16:32