Condividi tramite


Errore durante l'utilizzo di EnvDTE con assembly VSLangProj

Aggiornamento: novembre 2007

Se si crea un progetto che fa riferimento a uno o più assembly VSLangProj e all'assembly EnvDTE, è possibile che in fase di esecuzione si verifichi l'errore riportato di seguito:

"Eccezione non gestita: System.IO.FileNotFoundException: Errore durante il caricamento del file 'EnvDTE, Version=7.0.3300.0"

Questo errore è dovuto a un conflitto di risoluzione dei tipi in fase di esecuzione. La versione di EnvDTE inclusa in Visual Studio 2005 è la 8.0.xx, ma il riferimento della configurazione del progetto cerca una versione precedente di questo assembly, ovvero la versione 7.0.xx. Per correggere il problema, è necessario aggiungere un reindirizzamento dell'associazione per la versione più recente di EnvDTE al file di configurazione (config) del progetto. In questo modo verrà caricata la versione più recente di EnvDTE impedendo così che si verifichi l'errore.

A tale scopo, aggiungere un "File di configurazione dell'applicazione" al progetto e sostituirne il contenuto con quanto riportato di seguito:

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

Questo errore si verifica solo se si sta generando un EXE, poiché le DLL non dispongono di file config.

Vedere anche

Attività

Procedura: aggiungere riferimenti agli spazi dei nomi EnvDTE, EnvDTE80 ed EnvDTE90

Altre risorse

Riferimenti agli assembly di automazione e all'oggetto DTE2