Вопрос

Я пытаюсь получить список всех проектов в рамках указанного решения 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top