Condividi tramite


Errore durante l'utilizzo di EnvDTE con assembly VSLangProj

I componenti aggiuntivi di Visual Studio sono deprecati in Visual Studio 2013. Si consiglia di effettuare l'aggiornamento dei componenti aggiuntivi alle estensioni di VSPackage. Per ulteriori informazioni sull'aggiornamento, consultare Domande frequenti: conversione di componenti aggiuntivi in VSPackage Extensions.

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. Ciò permetterà a Visual Studio di caricare la versione più recente d 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 compilando un EXE, poiché le DLL non dispongono di file config.

Vedere anche

Attività

Procedura: aggiungere riferimenti agli spazi dei nomi di automazione

Altre risorse

Riferimenti agli assembly di automazione e all'oggetto DTE2