是否可以在整个解决方案中找到代码行数? 我听说过MZ-Tools ,但是有没有开源的?


#1楼

你可以使用:

  • SCLOCCount http://www.dwheeler.com/sloccount/ - 开源
  • loc metrics, http://www.locmetrics.com/ - 不是开源的,但易于使用

#2楼

VS2005,2003和2002的开源行计数器可在此处获得:

http://www.wndtabs.com/

此处还讨论了创建一个计算VS插件的行,在Codeproject上完成代码

http://www.codeproject.com/KB/macros/LineCounterAddin.aspx

另外Slick Edit Gadgets有一个很好的行计数器,这里:

http://www.slickedit.com/products/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.gz4076 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扩展 。

它内置了大量的实用程序,包括一个行计数器,它表示有多少行是空白的,代码等等。

您如何计算Visual Studio解决方案中的代码行?相关推荐

  1. 一起谈.NET技术,Visual Studio 2010 中的代码约定设置

    软件约定称为代码约定,通过这一约定可以表示代码正常工作所需的正式条件. 如果方法未按预期收到数据或生成的数据不符合预期的后置条件,代码约定将导致代码引发异常. 有关前置条件和后置条件的概述,您可能需要 ...

  2. Visual Studio Code 中部分代码变黑白色(前端vue-element-admin项目测试有效)

    @[TOC](Visual Studio Code 中部分代码变黑白色(前端vue-element-admin项目测试有效)) 代码变黑白色 使用vue-element-admin 后台模板在Visu ...

  3. vscode 注释多行代码_如何在Visual Studio Code中注释多行?

    我找不到在Visual Studio Code中注释和取消注释多行代码的方法. 是否可以使用某些快捷方式在Visual Studio Code中注释和取消注释多行? 如果是,该怎么办? 当其中一行已被 ...

  4. Visual Studio 2013如何显示代码行数

    在默认情况下,Visual Studio 是不显示行号的,但是我们开发时经常需要显示行号,只需要简单几步设置就可以让Visual Studio 显示行号,下面以Visual Studio 2013 C ...

  5. 在 Visual Studio Code 中添加自定义的代码片段

    无论是那个编辑器,如果能够添加一些自定义代码片段,能够大大提升代码的输入效率. 本文介绍如何在 Visual Studio Code 中添加自定义代码片段. 本文内容 Visual Studio Co ...

  6. 学习Azure Functions:在Visual Studio 2017中创建Azure Functions

    目录 介绍 Azure Azure帐户设置 设置开发环境 案例分析 在Visual Studio 2017中创建Azure Functions 添加Azure Functions项目 添加HTTP触发 ...

  7. Visual Studio 2005 中的新增安全性功能

    Visual Studio 2005 中的新增安全性功能 Visual Studio 2005 中的新增安全性功能 发布日期: 11/18/2005 | 更新日期: 11/18/2005 Brian ...

  8. 【错误记录】Visual Studio 2019 中运行 Unity C# 脚本时报错 ( 根据解决方案, 可能需要安装额外的组件才能获得 | .NET 桌面开发 | 使用 Unity 的游戏开发 )

    文章目录 一.报错信息 二.解决方案 三.Visual Studio 2019 中运行 Unity C# 脚本需要的组件 1..NET 桌面开发 2.使用 Unity 的游戏开发 一.报错信息 Vis ...

  9. 在Visual Studio 2010中创建多项目(解决方案)模板【三】

    前文回顾: 在Visual Studio 2010中创建多项目(解决方案)模板[一]:多项目解决方案模板的创建 在Visual Studio 2010中创建多项目(解决方案)模板[二]:Templat ...

最新文章

  1. 白盒测试实践作业任务分配
  2. 【转】Java finally语句到底是在return之前还是之后执行?
  3. 发现了一个delphi的form的bug
  4. c++图形中如何判断鼠标点击在一条直线上_PS教程:十种抠图方法【上】
  5. 自学python需要多长时间-自学Python需要多长时间?
  6. loadrunner 录制 odbc 迭代出现lrd_db_option: ERROR, return-code=LRDE2009错误
  7. List中toArray()的使用方法
  8. 为什么工具监测不出内存泄漏
  9. linux memcacheQ的安装与使用
  10. Myeclipse快键键
  11. winform中通过FileStream实现将文件上传
  12. Python的文件读取操作
  13. 旧版sai笔刷_PaintTool SAI2.0笔刷
  14. 用python输出杨辉三角形,python输出杨辉三角
  15. 铺铜需要把agnd和dgnd分开_电路中的AGND 和DGND怎么处理
  16. python职位要求_python 开发工程师职位描述与岗位职责任职要求
  17. CA签名是报的错误及解决方法
  18. java语言实现视频音频采集_详解js的视频和音频采集
  19. postgresql 分词_PostgreSQL全文检索使用
  20. atoi和itoa的模拟实现

热门文章

  1. 【转账】API自动化测试
  2. 如何更好地理解和应用ITIL
  3. 【剑指Offer】俯视50题之1-10题
  4. 【原】数据分析/数据挖掘 入门级选手建议
  5. [U3D Demo] 手机FPS射击游戏
  6. 关于安装VS2008后SQL server 2005安装的问题
  7. ArcGIS 10.X功能增减(转)
  8. 分享一次生产应用无法连接Oracle数据库故障
  9. 3 个 Zabbix常见问题的处理方法
  10. Zabbix4.2邮件告警python脚本