none
Komischer Fehler nach Upgrade RRS feed

  • 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.

    Donnerstag, 13. Januar 2011 16:47

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.  ;-)

    Donnerstag, 13. Januar 2011 17:07
  • 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
    Donnerstag, 13. Januar 2011 17:32
  • Ist so gewesen, wie ich vermutet hatte. Die eingebundene DLL hatte noch Verweise auf die Office-DLL.

    Problem erkannt, Problem gebannt ;-)

    Freitag, 14. Januar 2011 12:24

Alle Antworten

  • Meinst Du nur die von Microsoft.Office.Core, oder wirklich sämtliche? Hier werden leider noch einige legacy-COM DLLs referenziert.
    Donnerstag, 13. Januar 2011 17:00
  • 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.  ;-)

    Donnerstag, 13. Januar 2011 17:07
  • 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
    Donnerstag, 13. Januar 2011 17: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.

    Donnerstag, 13. Januar 2011 19:47
  • Ist so gewesen, wie ich vermutet hatte. Die eingebundene DLL hatte noch Verweise auf die Office-DLL.

    Problem erkannt, Problem gebannt ;-)

    Freitag, 14. Januar 2011 12:24