Ошибка при использовании EnvDTE со сборками VSLangProj
Надстройки Visual Studio выступан сопоставления в Visual Studio 2013. Необходимо обновить для надстройки с расширениями VSPackage. Дополнительные сведения об обновлении см. в разделе Часто задаваемые вопросы. Преобразование надстроек в расширения VSPackage.
Если создать проект, ссылающийся на одну или несколько сборок VSLangProj и сборку EnvDTE, при запуске может возникнуть следующая ошибка:
"Unhandled Exception: System.IO.FileNotFoundException: Error while loading file 'EnvDTE, Version=7.0.3300.0"
Эта ошибка вызвана конфликтом разрешения типов. Таким образом, версия EnvDTE, включенная в состав Visual Studio 2005, является версией 8.0.xx, а ссылка конфигурации проекта выполняет поиск более ранней версии этой сборки 7.0.xx. Чтобы исправить эту ошибку, следует добавить перенаправление с привязкой для более новой версии EnvDTE в файл конфигурации проекта с расширением CONFIG. При этом в Visual Studio будет загружена новая версия EnvDTE и ошибка не возникнет.
Для этого добавьте в проект файл конфигурации приложения и замените его содержимое следующим кодом:
<?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>
Эта ошибка возникает только при построении сборки EXE, так как для DLL файлов CONFIG не существует.
См. также
Задачи
Практическое руководство. Добавление ссылок на пространства имен автоматизации