如何将CDT插件版本写入.cproject文件?

How to write CDT plug-in version to .cproject file?

我正在为 Eclipse IDE 开发 CDT 插件,我需要跟踪创建 C 项目所用的插件版本以跟踪兼容性问题。为此,我需要将 CDT 插件版本写入 .cproject 文件。

我已经尝试过这样的代码:

IProject project = ...;
IManagedBuildInfo buildInfo = ManagedBuildManager.getBuildInfo(project);
// change things in the buildInfo
ManagedBuildManager.saveBuildInfo(project, true);

但是我还没有找到正确的使用方法

我已经尝试使用 CProject extension point, but the interface ICOwner,它需要实现,但我没有找到替代方案。

我找到了another similar question,但答案似乎是UI相关的(至少我找不到getResDesc()方法)。

还想澄清一下,这不是要更改 .cproject 文件中的现有选项,而是要添加新选项。

如何将 CDT 插件版本写入 .cproject 文件?

您可以通过写入项目范围的首选项存储来解决此问题。这会将首选项存储在 .settings/*.prefs 文件中。

来自 docs 的快速入门:

IScopeContext projectScope = new ProjectScope(MyProject);
Preferences projectNode = projectScope.getNode("com.example.myplugin");

然而,围绕偏好还有很多其他 API 选择,因此进一步讨论可能最好解决另一个问题。