Partager via


Erreur lors de l'utilisation d'EnvDTE avec les assemblys VSLangProj

Mise à jour : novembre 2007

Si vous créez un projet qui référence un ou plusieurs des assemblys VSLangProj et l'assembly EnvDTE, vous obtenez parfois l'erreur suivante au moment de l'exécution :

« Exception non gérée : System.IO.FileNotFoundException: Erreur lors du chargement du fichier 'EnvDTE, Version=7 .0.3300.0 »

Cette erreur est liée à un conflit de résolution de type au moment de l'exécution. En d'autres termes, la version de EnvDTE incluse dans Visual Studio 2005 est 8.0.xx, mais la référence de configuration du projet recherche une version antérieure de cet assembly, à savoir la version 7.0.xx. Pour corriger ce problème, vous devez ajouter une redirection de liaison pour la version la plus récente de EnvDTE au fichier de configuration (.config) de votre projet. Visual Studio pourra donc charger la dernière version de EnvDTE et empêcher l'erreur.

Pour ce faire, ajoutez un « Fichier de configuration de l'application » à votre projet, puis remplacez son contenu par les éléments suivants :

<?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>

Cette erreur se produit uniquement si vous générez un fichier EXE ; un fichier DLL ne présente aucun fichier de configuration.

Voir aussi

Tâches

Comment : ajouter des références aux espaces de noms EnvDTE, EnvDTE80 et EnvDTE90

Autres ressources

Référencement des assemblys d'automation et de l'objet DTE2