是否有可能找到整个解决方案中的代码行数?我听说过MZ-Tools,但是是否有一个开源的工具?
当前回答
一个简单的解决方案是在所有文件中进行搜索。在使用通配符时输入“*”。这将匹配所有的行。在查找结果窗口的最后,你应该看到一行排序:
匹配行数:563匹配文件数:17搜索文件数:17
当然,这对于大型项目来说不是很好,因为所有行都被加工并加载到内存中,以便在查找结果窗口中显示。
参考:
先进的例子
其他回答
这里的答案有点过时了,可能是从2008年开始的。因为在较新的Visual Studio版本2010/2012中,此功能已经内置。因此,没有理由为它使用任何扩展或工具。
计算代码行数的功能-计算度量。有了它,您可以计算每个项目或解决方案的度量(LOC、维护索引、圈索引、继承深度)。
只需在解决方案资源管理器中右键单击解决方案或项目,
并选择“计算指标”
以后用于分析和聚合的数据可以导入到Excel中。此外,在Excel中,你还可以过滤掉生成的类或其他指标中的杂音。包括代码行LOC在内的这些指标也可以在构建过程中收集,并包含在构建报告中
我发现powershell在这方面很有用。我认为LoC是一个非常虚假的指标,所以我不认为需要任何更正式的东西。
从一个较小的解决方案目录:
PS C:\Path> (gci -include *.cs,*.xaml -recurse | select-string .).Count
8396
PS C:\Path>
这将计算所有解决方案的.cs和.xaml文件中的非空行。对于一个较大的项目,我只是使用了不同的扩展列表:
PS C:\Other> (gci -include *.cs,*.cpp,*.h,*.idl,*.asmx -recurse | select-string .).Count
909402
PS C:\Other>
如果一个命令行就可以做到,为什么要使用整个应用程序呢?:)
下面是Visual Studio 2012/2013/2015的更新,供那些想要做“查找”选项的人使用(我认为这是最简单的):这个RegEx将找到所有非空行,并排除一些内容,以给出最准确的结果。
在“查找”框中输入以下正则表达式。请确保选择“使用正则表达式”选项。根据您的需要,将搜索选项更改为“当前项目”或“整个解决方案”。现在选择“查找全部”。在“查找结果”窗口的底部,您将看到“匹配行”,这是代码的行数。
^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$
该RegEx不包括以下项:
评论
// This is a comment
多行注释(假设每一行都正确地注释了,每行前面都有一个*)
/* I am a
* multi-line
* comment */
XML智能感知
/// <summary>
/// I'm a class description for Intellisense
/// </summary>
HTML注释:
<!-- I am a HTML Comment -->
使用语句:
using System;
using System.Web;
左大括号:
{
右大括号:
}
注意:括号之间的任何内容都将包含在搜索中,但在这个例子中,只有4行代码会被计算在内,而不是实际的18行非空行:
public class Test
{
/// <summary>
/// Do Stuff
/// </summary>
public Test()
{
TestMe();
}
public void TestMe()
{
//Do Stuff Here
/* And
* Do
* Stuff
* Here */
}
}
我创建这个给我一个更准确的LOC计数比以前的一些选项,并认为我将分享。老板们喜欢LOC计数,所以我不得不忍受一段时间。我希望其他人能发现这是有用的,如果你有任何问题或需要帮助,请告诉我。
在Visual Studio 2019中,从顶部菜单中您需要选择:
'Analyze' -> 'Calculate Code Metrics' -> 'For Solution'
这适用于Visual Studio 2019专业版和企业版。
使用菜单->分析->计算代码指标选项在Visual Studio 2010终极。
推荐文章
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- Visual Studio复制项目
- 如何在iis7应用程序池中设置。net Framework 4.5版本
- Visual Studio - Resx文件默认“内部”为“公共”
- 在Visual Studio 2010中有快速查找文件的方法吗?
- Nuget连接尝试失败“无法为源加载服务索引”
- 在Visual Studio中查看多个项目/解决方案
- Visual Studio打开默认浏览器,而不是Internet Explorer
- csproj文件中的“Service Include”是干什么用的?
- 如何在Visual Studio中找到堆栈跟踪?
- 使用不同的Web。在开发和生产环境中进行配置
- 是否有一种方法可以在Visual Studio中删除一行而不剪切它?
- Microsoft Visual Studio的推荐插件
- Visual Studio: ContextSwitchDeadlock