Error al utilizar EnvDTE con ensamblados VSLangProj
Actualización: noviembre 2007
Si crea un proyecto que hace referencia a uno o más ensamblados VSLangProj y al ensamblado EnvDTE, en algunas ocasiones se recibirá el siguiente error en tiempo de ejecución:
"Excepción no controlada: System.IO.FileNotFoundException: Error al cargar el archivo 'EnvDTE, Version=7.0.3300.0"
Este error se produce debido a un conflicto de resolución de tipos en tiempo de ejecución. Es decir, la versión de EnvDTE que está incluida en Visual Studio 2005 es la 8.0.xx, pero la referencia de configuración del proyecto busca una versión anterior de este ensamblado, versión 7.0.xx. Para corregir este problema, debe agregar un redireccionamiento de enlace para la versión más reciente de EnvDTE al archivo de configuración (.config) del proyecto. De esta forma, permitirá que Visual Studio cargue la versión más reciente de EnvDTE y evitará que se produzca el error.
Para ello, agregue un "Archivo de configuración de aplicaciones" al proyecto y, a continuación, reemplace el contenido por lo siguiente:
<?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>
Este error sólo se produce si se genera un archivo EXE, ya que los archivos DLL no tienen archivos de configuración.
Vea también
Tareas
Cómo: Agregar referencias a los espacios de nombres EnvDTE, EnvDTE80 y EnvDTE90
Otros recursos
Establecer referencias a los ensamblados de automatización y al objeto DTE2