实例化Visual Studio 2008

时间:2010-02-10 12:39:39

标签: c# visual-studio envdte

我正在尝试获取指定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格式的描述,任何资源?

2 个答案:

答案 0 :(得分:1)

您可能希望看一下:Library for parsing Visual Studio Solution files?如果直接解析.sln是您唯一的选择。

关于您当前的问题,some other people have had your issueKB246018 says check out your antivirus as the leading cause(示例是单词,但同样适用于VS)。尝试完全排除VS目录。

答案 1 :(得分:1)

您收到RPC错误:“服务器正忙”。这可能是因为Visual Studio实际上很忙,正在调试控制台模式程序。使用Console.WriteLine()语句进行调试时,请尝试使用其他调试器。 Windows SDK具有clrdbg.exe和mdbg.exe调试程序。 .NET 2.0 SDK有一个GUI调试器。