我编写了一个VSMacro(在VS2010中),它解析了一个解决方案,并为cpp文件添加了try和catch语句。到目前为止,它一直很好。我不得不重新格式化我的电脑并重新安装VS2010,现在它崩溃了。这是宏的一个片段。
Sub Foo(ByVal file As EnvDTE.ProjectItem)
Dim fileCM As EnvDTE.FileCodeModel
fileCM = file.FileCodeModel
End Sub
我已经检查过该文件是否是一个有效的对象,它确实指向一个cpp文件。但由于某种原因,file.FileCodeModel = Nothing。为什么FileCodeModel是Nothing?
答案 0 :(得分:0)
在Visual Studio中有几种情况,ProjectItem
不会返回FileCodeModel
个对象。例如,如果ProjectItem
指向解决方案资源管理器中的文件夹或非代码文件项。
您可以验证此方案中ProjectItem
代表的内容吗?特别是
答案 1 :(得分:0)
通常,当项目不可编译时会发生。您需要先尝试构建解决方案。