你怎么计算的代码在Visual Studio解决方案的线路?(How do you count th

2019-06-18 04:13发布

是否有可能发现在整个解决方案的代码行数? 我听说过的MZ-工具 ,但有一个等同的开放源代码?

Answer 1:

Visual Studio 2010的最终拥有这个内置。

分析 - >计算代码度量



Answer 2:

我发现PowerShell中对这项有益的。 我认为禄来是一个很假的度量无论如何,所以我不相信什么比较正式的应符合规定。

从一个很小的解决方案的目录:

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>

为什么要使用一个完整的应用程序时,一个命令行会做吗? :)



Answer 3:

我用按Ctrl + Shift + F。 接下来,把\n在搜索框中,并启用正则表达式框。 然后在查找结果,在屏幕的结束是搜索的文件的数量和发现的代码行。



Answer 4:

为VS2005一个开源的行计数器,2003年和2002年,请访问:

http://www.wndtabs.com/

还有创建线在CodeProject计数VS插件,完成代码的讨论,在这里

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

此外油滑编辑小工具有一个很好的线柜台,在这里:

http://www.slickedit.com/products/slickedit

和Microsoft Visual Studio团队系统2008包含一个很好的行计数器。

请记住,虽然:

靠代码行数来衡量开发进程就好比用重量来衡量飞机制造的进度。 比尔盖茨



Answer 5:

发现这个提示: LOC与VS查找和替换

不是一个插件,但如果这就是你所期待的。



Answer 6:

下面是为Visual Studio 2012/2013/2015对于那些谁想要做的“查找”选项的更新(我觉得这是最简单的):这个表达式会发现所有的非空行与多家排除给予最准确的结果。

输入下面的正则表达式为“查找”对话框。 请确保选中“使用正则表达式”选项。 更改搜索选项,或者“当前项目”,或根据自己的需要“整个解决方案”。 现在,选择“查找全部”。 在查找结果窗口的底部,你会看到“匹配行”,这是码数行。


^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$

此正则表达式不包括下列项目:


评论

// 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计数,所以我坚持用了一段时间。 我希望别人能有所帮助,让我知道,如果您有任何疑问或需要帮助得到它的工作。



Answer 7:

CLOC是一个极好的命令行,Perl的基于Windows可执行这将打破空行,注释行和代码源极线,由文件的格式进行分组。

现在,它不会专门在VS解决方案文件运行,但它可以通过目录递归,并在您认为合适,你可以设置文件名过滤器。

下面是从他们的web页面输出的示例:


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
-------------------------------------------------------------------------------

第三代相当于规模的会是多少码采取的一个粗略的估计第三代语言 。 不是非常有用的,但有趣的反正。



Answer 8:

这里的答案是有点过时了,可能是从VS 2008的时间。 因为在新的Visual Studio版本2010/2012,这个功能已经内置。 因此,没有理由使用它的任何延期或工具。

功能来计算的代码行 - 计算指标。 有了它,你可以计算出你的每一个项目或解决方案的度量(LOC,Maintaince指数,圈指数,传承的深度)。

只需右键单击在Solution Explorer解决方案或项目,

并选择“计算度量”

分析和汇总后的数据可以导入到Excel中。 此外,在Excel中,你可以从你的指标,筛选出生成的类或其它噪音。 这些指标包括代码LOC的线路也中构建过程中收集,并包含在构建报告



Answer 9:

正则表达式都VS2010和2012年之间的变化,所以大多数这里的正则表达式的解决方案不再工作

(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+

会发现,并非所有空行,不只是一个单一的括号(“{”或“}”),而不是只是一个的#include或其他预处理。

使用Ctrl - 转移 - f和确保正则表达式启用。

对VS 2010和较旧的对应正则表达式

^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+


Answer 10:

在Visual Studio Team System的2008年,你可以从菜单中做分析- >“计算代码度量的解决方案”,它会给你整个解决方案的行数(除其他事项外G)



Answer 11:

对于未来的读者,我想奉劝DPACK扩展的Visual Studio 2010 。

它有内置在包括线计数器,它说多少行是空白,代码等公用设施的负载



Answer 12:

一个简单的解决方法是在所有文件进行搜索。 而使用通配符输入“*”。 这将匹配所有行。 在查找结果窗口的结束,你应该看到一行排序:

Matching lines: 563 Matching files: 17 Total files searched: 17

当然,这不是大项目非常好,因为所有的线mached并加载到内存中的查找结果窗口中dispayed。

参考:

  • 高级示例


Answer 13:

你可以使用:

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


Answer 14:

我喜欢OxyProject指标 VS加载项。



Answer 15:

显然,工具是比较容易的,但我觉得爽在PowerShell中这样做:)

这个脚本会在.sln文件所有的.csproj引用,然后在每个文件的csproj它查找包含编译文件。 对于包括编译每个文件它将创建一个具有属性的对象:解决方案,项目,文件,线。 它存储在一个列表中的所有这些对象,然后组,并根据需要投影的数据。

#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}


Answer 16:

其他简单的工具,对于VS2008(开源): http://www.accendo.sk/Download/SourceStat.zip



Answer 17:

使用菜单 - >分析 - >在Visual Studio 2010旗舰计算代码度量选项。



Answer 18:

您可以使用Visual Studio的代码度量器PowerTool 10.0 。 这是一个命令行实用程序,为您计算在托管代码的几个指标(包括行代码)。 你可以得到一个VS 2010的插件, 使工具到Visual Studio ,并使它那么快,选择菜单项,然后点击“分析解决方案。”



Answer 19:

阿里帕尔同意。 该WndTab行计数器插件是一个这样的工具。 http://www.codeproject.com/KB/macros/linecount.aspx

这也是从下载网站搜索,找到一些相关的工具,是一个好主意。 http://www.cnet.com/1770-5_1-0.html?query=code+counter&tag=srch



Answer 20:

这是使用方法。它计算的JS文件也。

http://www.spoiledtechie.com/post/2011/11/22/How-To-Count-Lines-of-Code-in-Visual-Studio.aspx



Answer 21:

您可以使用免费工具SourceMonitor

给出了很多措施:代码行数,声明数量,复杂度,深度座

具有经由图表图形输出



Answer 22:

您可以使用项目行计数器增加,在Visual Studio 2010中通常不与Visual Studio 2010的工作,但它从这里一个有用的.reg文件的作用: http://www.onemanmmo.com/index。 PHP?CMD = newsitem及评论= news.1.41.0



Answer 23:

我想出了一个文件夹结构计数线快速和肮脏的PowerShell脚本。 它几乎没有功能齐全的,因为一些在其他的答案中引用的其他工具,但我认为这是不够好,提供的代码大小的一个粗略的比较相对于一个项目或解决方案彼此的文件。

该脚本可以在这里找到:

https://gist.github.com/1674457



Answer 24:

尝试neptuner。 它也给你的东西一样的,除了控制线的意见空格,制表符,行。 http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip



Answer 25:

在Visual Studio 2015年转至分析菜单,选择“计算代码度量值”。



文章来源: How do you count the lines of code in a Visual Studio solution?