【问题标题】:The operation 'Create Declaration / Definition' could not be completed: code element is read only无法完成“创建声明/定义”操作:代码元素是只读的
【发布时间】:2017-01-08 13:06:49
【问题描述】:

我正在使用 Win10 64 位的 Visual Studio 2015 中的 CMake 构建系统开发 C++ 项目。

我曾经在 C++ 文件中创建函数定义,方法是单击标题中的声明,然后单击 Quick Actions and Refactorings->Create Declaration / Definition

由于某种原因,此功能在我的项目中不再起作用。每当我尝试使用“创建定义”时,都会收到以下错误消息:

The operation 'Create Declaration / Definition' could not be completed for the following reason:

Add/Remove operation is impossible, because the code element 'NameOfClass' is read only

另外,当我选择Quick Actions and Refactorings 时,会出现只有两个选项的小弹出窗口:

当这个功能起作用时,VS 通常会显示带有四个选项的窗口,如下所示:

我知道关于 SO 有很多类似的问题,但似乎都没有解决这个特定的错误。到目前为止,我已经尝试了所有建议:

  • 重启 VS 和 Windows
  • 清洁解决方案
  • 完全删除构建文件夹(包含所有 .suo 和 .user 文件以及隐藏目录)并使用 CMake 重新创建它
  • 删除%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache的内容
  • 查看%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache 目录中的.err. 文件 - 没有相关错误。
  • 使用devenv.exe /resetuserdata重置所有VS用户数据
  • 关闭所有其他编辑器、资源管理器窗口等。

这些都没有任何影响。

这个功能很棒,但问题很烦人。如果有人有任何线索,请帮助。

【问题讨论】:

    标签: c++ visual-studio visual-studio-2015 intellisense


    【解决方案1】:

    好吧,我的错。我在 CMake 脚本中有一个错误,这就是为什么 Visual Studio 项目中不包含一些头文件的原因。如果您遇到此错误,请确保将 .cpp.hpp 文件都添加到您的 VS 项目文件中。

    【讨论】:

    • 嗨,Alex,由于您已经自己解决了您的问题并感谢分享,最好将其标记为答案,这将有助于其他遇到相同或类似问题的社区成员更轻松地搜索此问题有用的解决方法。
    • @Sara-MSFT 抱歉,我该怎么做呢?我还不能将答案标记为已接受,因为我回答后仅过去了 1 天。还是你的意思是标记整个问题?
    • 嗨,Alex,在您发布回复 24 小时后,您可以标记它。如果还没有到24小时,很抱歉给您添麻烦了,只是提醒一下:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    相关资源
    最近更新 更多