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