Создание экземпляра VisualStudio 2008
-
19-09-2019 - |
Вопрос
Я пытаюсь получить список всех проектов в рамках указанного решения VS2008.(это отдельное консольное приложение, а не надстройка Visual Studio)
Мой код работает с решениями VS2005, но при попытке использовать объект VS2008 я получаю всевозможные ужасные ошибки COM.
Я имею в виду:Этот:
Type _visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.8.0");
DTE _dte = Activator.CreateInstance(_visualStudioType) as DTE;
работает и это:
Type _visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.9.0");
DTE _dte = Activator.CreateInstance(_visualStudioType) as DTE;
нет (в настоящее время выдает ошибку COM 8001010a)
Оба соответствующих класса зарегистрированы в реестре, и на все соответствующие сборки имеются ссылки.
Редактировать:Я воспользуюсь базовым анализом файла .sln, даже если мне придется немного его переписать, поскольку манипуляции с текстом обязательно будут работать без всех неприятных процедур взаимодействия.Однако я не могу найти описание формата .sln, какие-нибудь ресурсы?
Решение
Возможно, вы захотите посмотреть на это: Библиотека для анализа файлов решений Visual Studio? Если прямой анализ .sln окажется вашим единственным вариантом.
Что касается вашей текущей проблемы, у некоторых других людей была ваша проблема.А KB246018 говорит, что проверка антивируса является основной причиной (пример — слово, но то же самое относится и к VS).Попробуйте полностью исключить каталог VS.
Другие советы
Вы получаете ошибку RPC:«сервер занят».Возможно, это связано с тем, что Visual Studio на самом деле занята отладкой вашей программы в консольном режиме.Если вам не хватает отладки с помощью операторов Console.WriteLine(), попробуйте другой отладчик.В Windows SDK имеются отладчики clrdbg.exe и mdbg.exe.В SDK .NET 2.0 был отладчик с графическим интерфейсом iirc.