14

私は現在、C# でコードの行数をカウントするためのソリューションを研究しています。

次の 2 つのツールの組み合わせが必要です:
http://richnewman.wordpress.com/2007/07/01/c-and-vbnet-line-count-utility/
http://www.locmetrics.com/ index.html

私の問題は、多くのビジュアル スタジオ ソリューションを含むフォルダーを再帰的にスキャンする必要があることです。そのため、一度に 1 つのソリューションしかスキャンできないため、コードに大きな作業を行わずに最初のツールを実際に使用することはできません。
しかし、ソリューションごとに結果を分割する必要もあります。これは、私が見つけた 2 番目のツールの資格を失います。同じ問題に悩まされている NDepend も見つけました。

私が必要とすることを行う無料のツールを知っていますか? 適切なものが見つかりません。

4

5 に答える 5

22

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) 

また、ラインカウンター

于 2010-05-05T12:19:28.970 に答える
3

LOCcodeは、コードの行数をカウントするための興味深い無料ツールだと思います。どのファイルを処理する必要があるかを選択できます。有効なすべてのタスクで LOC をカウントします。

ここに画像の説明を入力

残念ながら、LOCCode の開発は終了しているようです。

于 2013-01-27T04:46:34.800 に答える
2

必要なのは、ここで定義されている論理的なコード 行数です。コード行数(LOC)をどのように数えますか

NDependを使用してコードの行数をカウントする場合でも、NDependプロジェクトにすべてのVSslnを追加できます。ただし、コードの論理行はPDBファイルから推測されるメトリックであるため、すべてのアセンブリに対応するPDBファイルが関連付けられていることを確認してください。

また、次のことに興味があるかもしれません。コード行(LOC)の数を数えることがなぜ有用なのですか?

于 2010-05-06T08:17:07.490 に答える
-3

結局、私はLocMetricsを使用しましたが、残念ながら、これではソリューションごとの問題は実際には解決されませんでした。

しかし、リポジトリのフォルダ構造はソリューションに十分に対応しているため、上記のツールを使用することにしました。

助けてくれてありがとう

于 2010-05-12T07:48:20.287 に答える