【问题标题】:Why is EnvDTE.ProjectItem.FileCodeModel = Nothing?为什么 EnvDTE.ProjectItem.FileCodeModel = Nothing?
【发布时间】:2011-04-03 19:10:27
【问题描述】:

我编写了一个 VSMacro(在 VS2010 中)解析解决方案并将 try 和 catch 语句添加到 cpp 文件。到目前为止,它一直运行良好。我不得不重新格式化我的电脑并重新安装 VS2010,现在它崩溃了。这是宏中的一个 sn-p。

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

我检查了该文件是否为有效对象,并且它确实指向了一个 cpp 文件。但由于某种原因 file.FileCodeModel = Nothing。为什么 FileCodeModel 什么都不是?

【问题讨论】:

    标签: vb.net visual-studio vba visual-studio-macros


    【解决方案1】:

    在 Visual Studio 中有几种情况,ProjectItem 不会返回 FileCodeModel 对象。例如,如果ProjectItem 指向解决方案资源管理器中的文件夹或非代码文件项。

    你能验证一下ProjectItem 在这种情况下代表什么吗?特别是

    • 它是否指向一个文件?
    • 这是什么类型的项目(Web、控制台应用程序等...)?

    【讨论】:

    • 就像我在问题中所说的,ProjectItem 指向一个 cpp 文件。
    • @Ernesto,这是什么类型的 C++ 项目。本机、纯托管、C++/CLI 等 ...
    【解决方案2】:

    通常,当项目不可编译时会发生这种情况。您需要先尝试构建解决方案。

    【讨论】:

      猜你喜欢
      • 2019-10-24
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2019-12-06
      相关资源
      最近更新 更多