2010-02-10 53 views
1

我試圖獲取指定的VS2008解決方案中的所有項目的列表。 (這是一個獨立的控制檯應用程序,它不是一個Visual Studio插件)實例化VisualStudio 2008

我的代碼工作與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格式的描述,任何資源?

+0

VS2008文檔告訴你什麼? – Lazarus 2010-02-10 12:42:48

+1

解析.sln文件是一個選項嗎?似乎它會容易得多。 – 2010-02-10 12:44:39

+0

該文檔聲稱,這應該工作:) 我想避免直接解析.sln文件,因爲這將無效2005年我有代碼(也推出了一批新的解析問題,我猜) – SWeko 2010-02-10 12:50:07

回答

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目錄。

+0

在防病毒功能關閉時也不起作用 如果我嘗試 DTE2 _dte =(DTE2)Microsoft.VisualBasic.Interaction.CreateObject(「VisualStudio.DTE.9.0」,「」); 我收到「無法創建ActiveX組件」。錯誤。 – SWeko 2010-02-10 13:35:33

1

您正在收到RPC錯誤:「服務器正忙」。這可能是因爲Visual Studio實際上正在忙於調試您的控制檯模式程序。從調試Console.WriteLine()語句開始,嘗試使用另一個調試器。 Windows SDK具有clrdbg.exe和mdbg.exe調試器。 .NET 2.0 SDK有一個GUI調試器iirc。

+0

沒有,即使沒有調試也會失敗......而且,是的,我有點試圖通過拉動我的鞋帶來提升自己。 – SWeko 2010-02-10 14:29:36

+0

我沒有問題運行相同的代碼。我想不出爲什麼你會這樣做,除了添加錯誤的引用。我確實使用了VS2008安裝目錄中的envdte.dll。 – 2010-02-10 16:01:15