2010-08-25 59 views
1

我寫了一個VSMacro(在VS2010中)解析解決方案,並將try和catch語句添加到cpp文件。到現在爲止,它一直工作得很好。我不得不重新格式化我的電腦,重新安裝VS2010,現在它崩潰了。這是宏的一個片段。爲什麼EnvDTE.ProjectItem.FileCodeModel = Nothing?

Sub Foo(ByVal file As EnvDTE.ProjectItem) 
    Dim fileCM As EnvDTE.FileCodeModel 
    fileCM = file.FileCodeModel 
End Sub 

我檢查過這個文件是否是一個有效的對象,它確實指向了一個cpp文件。但由於某種原因file.FileCodeModel = Nothing。爲什麼FileCodeModel會變成什麼?

回答

0

有在Visual Studio幾種方案一個ProjectItem不會返回FileCodeModel對象。例如,如果ProjectItem指向解決方案資源管理器中的文件夾或非代碼文件項。

您可以驗證ProjectItem在這種情況下代表什麼。特別是

  • 它指向一個文件嗎?
  • 這是什麼類型的項目(Web,控制檯應用程序等)?
+0

就像我在我的問題中所說的,'ProjectItem'指向一個cpp文件。 – 2010-08-25 15:19:28

+0

@ Ernesto,這是什麼類型的C++項目。本機,純粹託管,C++/CLI等... – JaredPar 2010-08-25 15:25:45

0

通常情況下,它發生在項目不可編譯時。您需要先嚐試構建解決方案。

相關問題