『壹』 代码度量的结果显示
当 Visual Studio 分析代码后,将在复“代制码度量结果”窗口中显示结果。该窗口顶部有一个工具栏,还有一些用于显示计算结果的列。
“层次结构”列包含一个代码层次结构树视图,您可以展开或折叠此视图以查看所需的详细信息级别。其余各列显示计算的结果。您可以根据需要隐藏或排列结果列。有关更多信息,请参见 如何:添加、移除列或对列进行重排。
“可维护性”列中除了数字结果外还包含一个图标。绿色图标表示可维护性程度相对较高。黄色图标表示中等可维护性程度。红色图标表示可维护性低或存在潜在的故障点。这些颜色指示符与 FxCop 规则 AvoidUnmaintainableCode 所使用的严重级别相对应。如果可维护性指数低于 10,则此规则将激发错误;如果指数介于 10 和 20 之间,则激发警告;如果指数高于 20,则既不激发错误,也不激发警告。可维护性指数是以下三种度量值的综合体现:圈复杂度、代码行数以及算术复杂度。可维护性指数的值没有单位。
『贰』 visualstudio2012计算代码
VS2005,2003和2002的开源行计数器可在此处获得:
http://www.wndtabs.com/
此处还讨论了创建一个计算VS插件的行,在Codeproject上完成代码
http://www.codeproject.com/KB/macros/LineCounterAddin.aspx
另外Slick Edit Gadgets有一个很好的行计数器,这里:
http://www.slickedit.com/procts/slickedit
和Microsoft Visual Studio Team System 2008包括一个良好的行计数器。
请记住:
通过代码行测量编程进度就像按重量测量飞机构建进度一样。 比尔盖茨
#3楼
在Visual Studio Team System 2008中,您可以从菜单Analyze - >'Calculate Code Metrics for Solution'中进行操作,它将为您提供整个解决方案的行数(除其他外g )
#4楼
我发现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>
为什么在单个命令行执行时会使用整个应用程序? :)
#5楼
cloc是一个出色的命令行,基于Perl的Windows可执行文件,它将分解按文件格式分组的空白行,注释行和源代码行。
现在它不会专门在VS解决方案文件上运行,但它可以通过目录递归,您可以根据需要设置文件名过滤器。
以下是其网页的示例输出:
prompt> cloc perl-5.10.0.tar.gz
4076 text files.
3883 unique files.
1521 files ignored.
http://cloc.sourceforge.net v 1.07 T=10.0 s (251.0 files/s, 84566.5 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code scale 3rd gen. equiv
-------------------------------------------------------------------------------
Perl 2052 110356 112521 309778 x 4.00 = 1239112.00
C 135 18718 22862 140483 x 0.77 = 108171.91
C/C++ Header 147 7650 12093 44042 x 1.00 = 44042.00
Bourne Shell 116 3402 5789 36882 x 3.81 = 140520.42
Lisp 1 684 2242 7515 x 1.25 = 9393.75
make 7 498 473 2044 x 2.50 = 5110.00
C++ 10 312 277 2000 x 1.51 = 3020.00
XML 26 231 0 1972 x 1.90 = 3746.80
yacc 2 128 97 1549 x 1.51 = 2338.99
YAML 2 2 0 489 x 0.90 = 440.10
DOS Batch 11 85 50 322 x 0.63 = 202.86
HTML 1 19 2 98 x 1.90 = 186.20
-------------------------------------------------------------------------------
SUM: 2510 142085 156406 547174 x 2.84 = 1556285.03
-------------------------------------------------------------------------------
第三代等效量表是对第三代语言所需代码量的粗略估计。 不是非常有用,但无论如何都很有趣。
#6楼
这里的答案有点过时,可能来自vs 2008时间。 因为在较新的Visual Studio版本2010/2012中,此功能已内置。 因此,没有理由使用任何扩展或工具。
计算代码行的功能 - 计算指标。 有了它,您可以计算每个项目或解决方案的指标(LOC,维护指数,Cyclomatic指数,继承深度)。
在解决方案资源管理器中右键单击解决方案或项目
并选择“计算指标”
以后可以将用于分析和聚合的数据导入Excel。 同样在Excel中,您可以过滤掉生成的类或指标中的其他噪音。 这些指标(包括代码行LOC)也可以在构建过程中收集,并包含在构建报告中
#7楼
显然工具更容易,但我觉得很酷在powershell :)
此脚本查找.sln文件中的所有.csproj引用,然后在每个csproj文件中找到包含在编译中的文件。 对于包含在编译中的每个文件,它会创建一个具有属性的对象:Solution,Project,File,Lines。 它将所有这些对象存储在列表中,然后根据需要对数据进行分组和投影。
#path to the solution file e.g. "D:\Code\Test.sln"
$slnFile = "D:\Code\Test.sln"
#results
$results = @()
#iterate through .csproj references in solution file
foreach($projLines in get-item $slnFile | Get-Content | Select-String '".*csproj')
{
$projFile = [System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($slnFile), [regex]::Match($projLines,'[^"]*csproj').Value)
$projFolder = [System.IO.Path]::GetDirectoryName($projFile)
#from csproj file: get lines for files to compile <Compile Include="..."/>
$includeLines = get-item $projFile | Get-Content | Select-String '<Compile Include'
#count of all files lines in project
$linesInProject = 0;
foreach($fileLine in $includeLines)
{
$includedFilePath = [System.IO.Path]::Combine($projFolder, [Regex]::Match($fileLine, '"(?<file>.*)"').Groups["file"].Value)
$lineCountInFile = (Get-Content $includedFilePath).Count
$results+=New-Object PSObject -Property @{ Solution=$slnFile ;Project=$projFile; File=$includedFilePath; Lines=$lineCountInFile }
}
}
#filter out any files we dont need
$results = $results | ?{!($_.File -match "Designer")}
#print out:
"---------------lines per solution--------------"
$results | group Solution | %{$_.Name + ": " + ($_.Group | Measure-Object Lines -Sum).Sum}
"---------------lines per peoject--------------"
$results | group Project | %{$_.Name + ": " + ($_.Group | Measure-Object Lines -Sum).Sum}
#8楼
这是Trick ..它也计算Js文件。
http://www.spoiledtechie.com/post/2011/11/22/How-To-Count-Lines-of-Code-in-Visual-Studio.aspx
#9楼
正则表达式在VS2010和2012之间发生了变化,因此这里的大多数正则表达式解决方案都不再有效
(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+
将找到所有非空白的行,不仅仅是一个括号('{'或'}'),而不仅仅是#include或其他预处理器。
使用Ctrl - shift - f并确保启用正则表达式。
VS 2010及更早版本的相应正则表达式为
^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+
#10楼
以下是Visual Studio 2012/2013/2015的更新,适用于那些想要执行“查找”选项(我认为最简单)的人:此RegEx将查找包含多个排除项的所有非空白行,以提供最准确的结果。
在“查找”框中输入以下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计数,所以我坚持了一段时间。 我希望其他人可以找到这个有用的,如果您有任何问题或需要帮助让它工作,请告诉我。
#11楼
其他简单工具适用于VS2008(开源): http : //www.accendo.sk/Download/SourceStat.zip
#12楼
您可以使用免费工具SourceMonitor
提供了许多措施:代码行,语句计数,复杂性,块深度
通过图表输出图形
#13楼
您可以使用Visual Studio代码指标PowerTool 10.0 。 它是一个命令行实用程序,可以为您计算托管代码的一些指标(包括代码行)。 您可以获得一个VS 2010插件, 将该工具引入Visual Studio ,并使其快速选择菜单项并单击“Analyze Solution”。
#14楼
找到这个提示: LOC与VS查找和替换
不是插件,如果这就是你要找的东西。
#15楼
一个简单的解决方案是搜索所有文件。 使用通配符时键入“*”。 哪个会匹配所有线路。 在查找结果窗口的末尾,您应该看到排序的一行:
Matching lines: 563 Matching files: 17 Total files searched: 17
当然,这对于大型项目来说并不是很好,因为所有行都被配对并加载到内存中以便在查找结果窗口中显示。
参考:
高级示例
#16楼
我更喜欢OxyProject Metrics VS Addin。
#17楼
尝试neptuner。 除了LoC之外,它还为您提供空格,制表符,注释行等内容。 http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip
#18楼
在Visual Studio 2015中,转到“分析”菜单,然后选择“计算代码度量标准”。
#19楼
Visual Studio 2010 Ultimate具有此内置功能。
分析 - >计算代码度量标准
#20楼
您可以在Visual Studio 2010中使用Project Line Counter加载项。通常它不能与Visual Studio 2010一起使用,但它可以使用有用的.reg文件: http : //www.onemanmmo.com/index。 PHP?CMD = newsitem及评论= news.1.41.0
#21楼
使用Visual Studio 2010 Ultimate中的菜单 - >分析 - >计算代码度量标准选项。
#22楼
我想出了一个快速而脏的PowerShell脚本,用于计算文件夹结构中的行数。 它不像其他答案中引用的其他工具那样功能齐全,但我认为在项目或解决方案中提供相对于彼此的代码文件大小的粗略比较是足够好的。
脚本可以在这里找到:
https://gist.github.com/1674457
#23楼
我用了Ctrl + Shift + F. 接下来,在搜索框中输入\\n并启用正则表达式框。 然后在查找结果中,在屏幕的末尾是搜索到的文件数和找到的代码行。
#24楼
同意Ali Parr。 WndTab Line Counter addin就是这样一个工具。 http://www.codeproject.com/KB/macros/linecount.aspx
从下载站点搜索以查找一些相关工具也是一个好主意。 http://www.cnet.com/1770-5_1-0.html?query=code+counter&tag=srch
#25楼
对于未来的读者,我想建议Visual Studio 2010的DPack扩展 。
它内置了大量的实用程序,包括一个行计数器,它表示有多少行是空白的,代码等等。
原文链接:https://es.sofbug.com/question/5DoH
点
『叁』 visual studio2012统计行数的时候注释的算不算
软糖来回答罗:
计算代码度量值统计的行数非常不准确,会导致行数只有实际行数的1/4左右。
它仅仅统计方法体内有意义的调用语句,连定义语句都不计算在内。
正确的统计代码行方式:
按Ctrl+F打开查找栏,b*[^:b#/]+.*$,将这个正则表达式填进去,
勾选使用正则表达式,将查找范围设定为整个项目/解决方案,点击查找全部按钮,
然后在 查找结果 1 窗口中,拖到最底部,再往上拖一点一点,最后一行文字:
匹配行: 13914 匹配文件数: 300 已搜索文件总数: 300
另外,搜SourceCounter这个东东可以统计VS行数。可以选择是否包含注释。