Freigeben über


Fehler beim Verwenden von EnvDTE mit VSLangProj-Assemblys

Add-Ins für Visual Studio sind in Visual Studio 2013 veraltet. Sie müssen für Ihre Add-Ins ein Upgrade auf VSPackage-Erweiterungen durchführen. Weitere Informationen über das Durchführen eines Upgrades finden Sie unter FAQ: Konvertieren von Add-Ins in VSPackage-Erweiterungen.

Wenn Sie ein Projekt erstellen, das auf eine oder mehrere VSLangProj-Assemblys und die EnvDTE-Assembly verweist, wird zur Laufzeit u. U. der folgende Fehler angezeigt:

"Unbehandelte Ausnahme: System.IO.FileNotFoundException: Fehler beim Laden der Datei 'EnvDTE, Version=7.0.3300.0"

Dieser Fehler ist auf einen Typauflösungskonflikt zur Laufzeit zurückzuführen. Das bedeutet, dass es sich bei der Version von EnvDTE, die im Lieferumfang von Visual Studio 2005 enthalten ist, um Version 8.0.xx handelt, der Konfigurationsverweis des Projekts jedoch nach einer früheren Version der Assembly, nämlich Version 7.0.xx, sucht. Um dieses Problem zu beheben, müssen Sie der Konfigurationsdatei des Projekts (CONFIG-Datei) eine Bindungsumleitung für die neuere Version von EnvDTE hinzufügen. Dadurch lädt Visual Studio die neuere Version von EnvDTE, sodass der Fehler nicht mehr auftritt.

Fügen Sie dazu dem Projekt eine "Anwendungskonfigurationsdatei" hinzu, und ersetzen Sie deren Inhalt durch den folgenden Code:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-
        com:asm.v1" appliesTo="v2.0.50318">
            <dependentAssembly>
                <assemblyIdentity name="EnvDTE" publicKeyToken=
                "b03f5f7f11d50a3a"/>
                <bindingRedirect oldVersion="7.0.3300.0" 
                newVersion="8.0.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

Dieser Fehler tritt nur beim Erstellen einer EXE auf. DLLs weisen keine CONFIG-Dateien auf.

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen von Verweisen auf Automatisierungsnamespaces

Weitere Ressourcen

Verweisen auf Automatisierungsassemblys und das DTE2-Objekt