Question Nombre de lignes de code pour de nombreuses solutions C #


Je suis actuellement à la recherche d'une solution pour compter les lignes de code en C #.

J'ai à peu près besoin d'une combinaison des deux outils suivants:
http://richnewman.wordpress.com/2007/07/01/c-and-vbnet-line-count-utility/
http://www.locmetrics.com/index.html 

Mon problème est que je dois scanner récursivement un dossier contenant beaucoup de solutions visuelles. Donc, ne peut pas vraiment utiliser le premier outil sans travail majeur sur son code, car il ne peut analyser qu'une seule solution à la fois.
Mais je dois également diviser les résultats pour chaque solution, de préférence même les projets contenus. Cela disqualifie le deuxième outil que j'ai trouvé. J'ai aussi trouvé NDepend qui souffre du même problème.

Connaissez-vous des outils gratuits qui font ce dont j'ai besoin? Je suis incapable de trouver quelque chose qui convienne.


12
2018-05-05 12:16


origine


Réponses:


Dépendre est un excellent outil conçu pour mesurer et visualiser les mesures de code et la complexité.

Powershell le ferait:

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

Compter les lignes de code source dans PowerShell:

Nombre de lignes par chemin:

   gci . *.cs -Recurse | select-string . | Group Path

Min / Max / Moyennes:

   gci . *.cs -Recurse | select-string . | Group Filename | Measure-Object Count -Min -Max -Average

Ratio de commentaires:

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

Aussi, Compteur de ligne


17
2018-05-05 12:19



je pense LOCcode est un outil gratuit intéressant pour compter le nombre de lignes de code. Il permet de choisir lequel des fichiers doit être traité. Il compte LOC dans toutes les tâches activées.

enter image description here

Malheureusement, il semble que le développement de LOCCode soit terminé.


3
2018-01-27 04:46



Ce dont vous avez besoin, ce sont des lignes logiques de comptage de code telles que définies ici:   Comment comptez-vous votre nombre de lignes de code (LOC)

Si vous utilisez NDepend pour compter votre nombre de lignes de code vous pouvez toujours ajouter tous vos VS sln dans un projet NDepend. Toutefois, les lignes de code logiques sont une métrique déduite des fichiers PDB. Assurez-vous donc que tous les assemblys ont des fichiers PDB correspondants associés.

Vous pourriez aussi être intéressé par:Pourquoi est-il utile de compter le nombre de lignes de code (LOC)?


2
2018-05-06 08:17



J'ai aimé ce que Mitch Wheat a dit, mais je n'aime pas que certaines informations inutiles soient calculées en tant que «ligne de code». J'ai écrit un code C # pour trouver le nombre total de lignes REAL dans le code ici: http://rajputyh.blogspot.in/2014/02/counting-number-of-real-lines-in-your-c.html 

Vous devez créer un petit utilitaire à partir de ce code fournir le chemin de votre dossier racine où tous les fichiers "* .cs" sont conservés. La bonne chose à propos de ce code est qu'il ne dépend pas du fichier de projet. Je vérifie généralement mon code et supprime les fichiers générés automatiquement et utilise l'outil pour compter le nombre de lignes.


0
2018-02-24 15:18



En fin de compte je suis allé avec LocMetrics, malheureusement, cela n'a pas vraiment résolu mon problème par solution.

Mais la structure des dossiers de la reposiotry correspond assez bien aux solutions, et j'ai donc décidé d'utiliser l'outil ci-dessus.

Merci à tous pour votre aide


-2
2018-05-12 07:48