Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
许多C#解决方案的代码行计数_C#_File_Count_Lines Of Code - Fatal编程技术网

许多C#解决方案的代码行计数

许多C#解决方案的代码行计数,c#,file,count,lines-of-code,C#,File,Count,Lines Of Code,我目前正在研究一种在C#中计算代码行数的解决方案 我非常需要以下两种工具的组合: 我的问题是,我需要递归扫描包含许多VisualStudio解决方案的文件夹。因此,在没有对第一个工具的代码进行任何重大工作的情况下,它不能真正使用第一个工具,因为它一次只能扫描一个解决方案。 但我还需要为每个解决方案分割结果,最好是包含的项目。这就取消了我找到的第二个工具的资格。我还发现了遭受同样问题困扰的NDepend 你知道有什么免费工具可以满足我的需要吗?我找不到任何合适的工具。是一个非常好的工具,用于测

我目前正在研究一种在C#中计算代码行数的解决方案

我非常需要以下两种工具的组合:

我的问题是,我需要递归扫描包含许多VisualStudio解决方案的文件夹。因此,在没有对第一个工具的代码进行任何重大工作的情况下,它不能真正使用第一个工具,因为它一次只能扫描一个解决方案。
但我还需要为每个解决方案分割结果,最好是包含的项目。这就取消了我找到的第二个工具的资格。我还发现了遭受同样问题困扰的NDepend

你知道有什么免费工具可以满足我的需要吗?我找不到任何合适的工具。

是一个非常好的工具,用于测量和可视化代码度量和复杂性

Powershell会这样做:

(dir -Include *.cs -Recurse | select-string .).Count
:

每条路径的行数:

   gci . *.cs -Recurse | select-string . | Group Path
最小/最大/平均值:

   gci . *.cs -Recurse | select-string . | Group Filename | Measure-Object Count -Min -Max -Average
评论比率:

   $items = gci . *.cs -rec; ($items | select-string "//").Count / ($items | select-string .).Count


## Count the number of lines in all C# files in (and below) 
## the current directory. 

function CountLines($directory) 
{ 
    $pattern = "*.cs" 
    $directories = [System.IO.Directory]::GetDirectories($directory) 
    $files = [System.IO.Directory]::GetFiles($directory, $pattern) 

    $lineCount = 0 

    foreach($file in $files) 
    { 
        $lineCount += [System.IO.File]::ReadAllText($file).Split("`n").Count 
    } 

    foreach($subdirectory in $directories) 
    { 
        $lineCount += CountLines $subdirectory 
    } 

    $lineCount 
} 

CountLines (Get-Location) 

另外,

您需要的是此处定义的逻辑代码行计数:

如果您使用NDepend计算您的数量,您仍然可以将所有VS sln附加到一个NDepend项目中。但是,逻辑代码行是从PDB文件推断出来的度量,因此请确保所有程序集都关联了相应的PDB文件

另外,您可能会感兴趣:

最后我选择了,不幸的是,这并没有真正解决我的每个解决方案问题

但是reposiotry的文件夹结构映射到的解决方案足够好,所以我决定使用上面的工具

感谢大家的帮助

我认为这是一个计算代码行数的有趣的免费工具。它允许选择必须处理的文件。它统计所有已启用任务中的LOC


不幸的是,LOCCode的开发似乎已经结束。

我喜欢米奇·麦特(Mitch Wheat)所说的,但我不喜欢一些无用的信息被计算为“代码行”。我已经编写了一个C#代码,在这里查找代码中实际行的总数:


您需要用该代码构建一个小型实用程序以提供保存所有“*.cs”文件的根文件夹路径。该代码的优点是它不依赖于项目文件。我通常会签出代码并删除自动生成的文件,然后使用该工具计算行数

不幸的是,这计算了所有的文本行,我更感兴趣的是真实的代码行,例如,不包括注释,甚至可能是自动生成的代码。@Eric-如果不计算注释和自动生成的代码,您的生产率会下降。:-)你不能结合使用这种方法来查找所有的.sln文件,然后将它们分别输入到你提到的第一个工具中吗?@nc97217当然我可以想出我自己的实现,只是希望这已经完成。据我所知,NDepend一次也只能在单个解决方案/程序集上工作。但我需要立即扫描整个存储库。该工具能够排除注释也很重要。甚至可能是自动生成的代码。抱歉忘记了(可以编辑原始问题,因为Kobi已经修复了超链接;-)“按代码行测量编程进度就像按重量测量飞机制造进度。”-比尔·盖茨我不确定这些数字将用于什么。目前,它们只是一个一次性快照。可能是为了了解所有项目的规模。我只是一名实习生,被要求了解:-)你可以根据部分文件名或位置排除自动生成的文件,但你不一定能识别所有自动生成的代码。排除自动生成的代码只是一个加号,不是真正的要求。但我被特别要求排除评论。你为什么否决这个答案?我应该做些不同的事情吗?太糟糕了,它算得上XMLs>。链接已经失效,回程机器也帮不上忙了(