Я работаю над проектом расширения V2 2013 года. Использование Windows & и .NET 4.5 Расширение vsix при установке работает нормально. Однако что-то произошло некоторое время назад, сразу после добавления некоторых изменений, и я больше не могу запускать расширение в отладчике. Выбрав проект расширения в visual studio, а затем выбрав debug-> start new instance, VS запускается на этапе его компиляции, а затем запускает новую версию vs с расширением на месте. Тем не менее, вскоре после появления прямоугольника VS черного всплывающего окна появляется всплывающее сообщение с сообщением «Операция не может быть выполнена - такой интерфейс не поддерживается». Отладчик запустил и показывает модули, загружаемые в «Окно выполнения». Последний загруженный модуль - ENVDTE80.Windows 7 visual studio 2013, запускающая расшифрованное расширение, получает «Операция не может быть завершена - такой интерфейс не поддерживается»
Запуск Devenv с/журналом и копирование файла журнала в то время как «Операция не может ...», что отображается сообщение показывает последнюю запись будет
<entry> <record>1294</record> <time>2016/02/09 16:53:22.122</time> <type>Information</type> <source>VisualStudio</source> <description>Leaving function VBDispatch::GetTypeLib</description> <guid>{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}</guid>
</entry> </activity>
GUID, цитируется появляется много раз в течение activity.log.
Я просмотрел нечетные сообщения об ошибках из журнала devenv/LOG. Я удалил приложение VSIX из визуальной студии, а затем попытался отлаживать>, но радости там нет. Я удалил визуальную студию и переустановил ее. Я исправил установки .NET. Я отремонтировал SDK. Ничего не сработало. Есть несколько других более ранних и более простых версий версий расширения и тестирования, которые отлично отлаживают. Я склонен думать, что есть какая-то часть реестра, где есть причина не запускать этот код.
С Devenv активности входом я вижу эти сообщения об ошибках:
<description>PkgDef configuration error. ApplicationExtensionsFolder omitted from PkgDefSearchPath</description>
The clients rights token could not be found at ....
Extension will not be loaded because an extension with the same ID 'Microsoft.Windows.DevelopmentKit.Desktop' is already loaded at > C:\PROGRAM FILES (X86)\COMMON FILES\MICROSOFT\EXTENSIONMANAGER\EXTENSIONS\MICROSOFT\WINDOWS KITS\8.0\DESKTOP SDK\...</description>
Я также запустить ProcMon и захватил событие между debug-> начать отдельный экземпляр и представление сообщения об ошибке. Два элемента> трассируются: один для оригинального devenv и один для отладки расширения. Все транзакции реестра для отлаженного расширения делятся на: УСПЕХ, НАЗВАНИЕ НЕ НАЙДЕННОЕ, НЕТ БОЛЬШЕ НАЗНАЧЕННЫХ НАЗНАЧЕНИЙ ИЛИ ПЕРЕПОЛНЕНИЕ БУФЕРА. Нет однозначного (для меня) условия одиночной ошибки.
pid, связанный с запуском devenv после последней записи pid для отлаживаемого расширения, имеет несколько записей ACCESS DENIED, связанных с HKLM \ SOFTWARE \ Microsoft \ SQMClient \ Windows \ CommonDatapoints.
Сравнение devenv.log с procmon, очевидно, что обработка продолжается после последней записи в devenv.log для ENVDTE80. Кажется, я не схожу с такой корреляцией.
У меня это было много.
Общепринятое предположение о перерегистрации dll не доказало свою полезность здесь (пока) (хотя, похоже, исправлена проблема IE, которая делает ее привлекательной).
Также не установлен/нет .Net 3.5 (.1) без эффекта. Запустите sfc/scannow без эффекта. Запустите NetFxRepairTool без эффекта. Восстановили экспериментальный куст VS extensions (12.0-Exp) без эффекта. Имейте un/re-installed vs2013 и SDK без эффекта Удалили другие версии VS и парные SDK без эффекта