C++ 核心准则检测器目前在一个单独的NuGet包里

[原文发表地址] C++ Core Guidelines Checkers are now in a single NuGet package

[原文发表时间] 2016/6/3

这是令人兴奋的一年自从CppCon2015大会宣布以C++核心准则以及检测器作为Bjarne Stroustrup的开幕主题演讲开始。我们已经多次通过NuGet发布了CppCoreCheck分析工具。Clang社区一直跟随着步伐,在Clang-Tidy上更新C++ Core Guidelines checks。并且我们已经在GitHub看到了源源不断的提交有关于指南支持库的实现。

最令人兴奋的是我们从我们的开发者社区看到的反馈和参与的数量。有很多人都给出了建议,反馈,并且给 cppcorecheck@microsoft.com提出bugs. 你们的反馈和贡献对于这项还处于早期阶段的工作是非常有帮助的。谢谢你们!

在发布第一个生命周期检测器的预览版本时,我们把它放在一个单独的DLL里。因为复杂分析,所以lifetime checker要比正常的核心检测器更慢,同时早期的工作意味着会有很多缺陷。把他分离成单独的Dll,这样就可以允许您单独安装范围和类型检测器而不安装生命周期检测器。但是我们了解到你们想要在运行每个检测器的时候直接选择而无需返回到NuGet.

我们目前正在运行实验的检测器,包括lifetime 检测器以及在一个NuGet包里的常规检测器(GSL仍作为一个依赖来安装)。 现在MsBuild脚本允许我们扩展项目设置,所以你们可以在代码分析的时候选择特定的扩展。这意味着你可以在你的程序设置里单独的启用或者禁止任一检测器。你可以在运行debug构建项目的时候选择使用release 检测器,举个例子,为你的release构建开启experimental 检测器。或者你可以创建一个自定义的配置,运行代码分析检测器。

 

想试试看吗?

只需要在NuGet上安装检测器.( 在第一篇有关于CppCoreCheck的博客上有详细的指导)。如果你有单独的安装ExperimentalCoreCheck包,你应该在常规的CppCoreCheck包里卸载它目前所有的功能。有关详细信息,请参考下面关于安装和卸载NuGet程序包的说明。

新的MSBuild脚本允许你们独立的配置检测器运行。只需要在项目属性对话框中选择“配置属性\代码分析\扩展功能”。在这里,对于那个配置你可以选择你想要运行的检测器。对于每一个配置你可以选择一系列不同的检测器。

 

卸载(和安装) NuGet程序包

如果你要卸载旧的ExperimentalCppCoreCheck包,你可以在NuGet包控制台这样做。通过右键单击你的项目或者解决方案把管理NuGet包调出来,或者在快速启动框中输入:

点击”已安装“,选择Experimental包。单击右边的”卸载“按钮卸载它。

 

请注意,在管理包窗口上有个更新显示。如果点击该选项,你可以在同一个窗口中立即更新CppCoreCheck包。

 

给我们反馈!

一如既往,我们想听听你的想法。实验阶段的检测器仍处于早期阶段,所以我们不期望有关于试验的任何事情上的标准错误报告。但是如果你在发布检测器时遇到问题,或者有任何关于实验规则设计方向的想法,请通过邮件 cppcorecheck@microsoft.com或者用户之声建议链接(反馈bugs),甚至可以发送笑脸告诉我们。