Visual Studio 2013 C++/CLI Intellisense 参考库

Visual Studio 2013 C++/CLI Intellisense with Reference Library

我有一个包含多个项目的解决方案。

Project2 通过 Project2 属性中的 Common Properties->References 接口包含 Project1。 一切都编译得很好;但是,智能感知会将 project2 的代码中对 project1 的任何引用突出显示为错误。具体来说,我收到以下类型的消息。

在我的项目 2 的 *.h 文件中

#pragma once
namespace Project2
{
    class TypeInProject2
    {
        property Project1::TypeInProject1^ obj 
        { 
            Project1::TypeInProject1^ get();
            void set(Project1::TypeInProject1^ value);
        };
        //"Project1" is underlined in red
        //IntelliSense: name followed by '::' must be a class or namespace
    };
}

我可以通过向 project1 中的 header 添加 include 来使智能感知快乐,但这会导致重新定义所有 project1 的 类 并引发编译错误。

在 C++/CLI 项目选项中是否有任何我应该了解的怪癖以使智能感知快乐?


更新:我应该补充一点,有时一切正常。但是在退出 VS13 然后重新打开项目后,所有智能感知错误再次出现。

可能是 Intellisense 数据库出了问题。当它发生在我身上时,我做了以下纠正:

  1. 确保您的代码处于可以编译的状态。
  2. 退出Visual Studio
  3. 删除解决方案目录中的.suo 和.sdf 文件。 (删除 .suo 可能不是这个清理过程所必需的,但它没有坏处。)
  4. 打开 Visual Studio 中的解决方案。
  5. Select 构建 --> 批量构建。
  6. 在批处理构建 window 中,单击 "Select All",然后单击 "Rebuild"。