Строки кода, значащие много решений C#

Я в настоящее время исследую решение для подсчета строк кода в C#.

Мне в значительной степени нужна комбинация следующих двух инструментов:
http://richnewman.wordpress.com/2007/07/01/c-and-vbnet-line-count-utility/
http://www.locmetrics.com/index.html

Моя проблема состоит в том, что я должен рекурсивно просканировать папку, содержащую много решений для Visual Studio. Так не может действительно использовать первый инструмент ни без какой основной работы над ее кодом, поскольку это только может просканировать единое решение за один раз.
Но я также должен разделить результаты для каждого решения, предпочтительно даже содержавшие проекты. Это дисквалифицирует второй инструмент, который я нашел. Я также нашел NDepend, который страдает от той же проблемы.

Вы знаете о каких-либо бесплатных инструментах, которые делают то, в чем я нуждаюсь? Я не могу найти что-либо подходящим.

14
задан Kobi 5 May 2010 в 12:20
поделиться

3 ответа

NDepend - отличный инструмент, предназначенный для измерения и визуализации показателей и сложности кода.

Powershell сделает это:

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

Подсчет строк исходного кода в PowerShell :

Количество строк на путь:

   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) 

Кроме того, Счетчик строк

20
ответ дан 1 December 2019 в 12:38
поделиться

Что вам нужно, так это логический подсчет строк кода, как определено здесь: Как подсчитать количество строк кода (LOC)

Если вы используете NDepend для подсчета количества строк кода, вы можете добавить все ваши VS sln в проект NDepend. Однако логические строки кода - это метрика, вычисляемая из PDB-файлов, поэтому убедитесь, что все ваши сборки имеют соответствующие PDB-файлы.

Также вас может заинтересовать:Почему полезно считать количество строк кода (LOC)?

2
ответ дан 1 December 2019 в 12:38
поделиться

В конце концов я выбрал LocMetrics , к сожалению, это не решило мою проблему для каждого решения.

Но структура папок репозитория достаточно хорошо соответствует решениям, поэтому я решил использовать инструмент, описанный выше.

Спасибо всем за помощь

-3
ответ дан 1 December 2019 в 12:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: