我正在尝试获取指定 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调试器。的.NET 2.0 SDK有GUI调试IIRC。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top