79499517

Date: 2025-03-11 02:04:14
Score: 0.5
Natty:
Report link
# Configurar el directorio base donde están los proyectos
$BaseDir = "C:\Ruta\A\Proyectos"

# Ruta al ejecutable de Visual Studio 2019 (ajustar si está en otro directorio)
$VSPath = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.com"

# Archivo CSV de salida
$OutputCSV = "C:\Ruta\De\Salida\metricas.csv"

# Encabezados del CSV
"Project, MaintainabilityIndex, CyclomaticComplexity, DepthOfInheritance, ClassCoupling, LinesOfCode" | Out-File -FilePath $OutputCSV

# Buscar todos los archivos .csproj en el directorio y subdirectorios
$Projects = Get-ChildItem -Path $BaseDir -Recurse -Filter "*.csproj"

# Procesar cada proyecto
foreach ($Project in $Projects) {
    $ProjectPath = $Project.FullName
    $SolutionDir = Split-Path -Path $ProjectPath -Parent

    # Ejecutar análisis de métricas en el proyecto
    $MetricsOutput = & "$VSPath" "$ProjectPath" /Clean /Rebuild /ProjectMetrics
    
    # Extraer los valores de métricas del output
    if ($MetricsOutput -match "Maintainability Index:\s+(\d+).*Cyclomatic Complexity:\s+(\d+).*Depth of Inheritance:\s+(\d+).*Class Coupling:\s+(\d+).*Lines of Code:\s+(\d+)") {
        $MaintainabilityIndex = $matches[1]
        $CyclomaticComplexity = $matches[2]
        $DepthOfInheritance = $matches[3]
        $ClassCoupling = $matches[4]
        $LinesOfCode = $matches[5]

        # Guardar resultados en CSV
        "$($Project.Name),$MaintainabilityIndex,$CyclomaticComplexity,$DepthOfInheritance,$ClassCoupling,$LinesOfCode" | Out-File -FilePath $OutputCSV -Append
    }
}

Write-Host "Métricas generadas y guardadas en: $OutputCSV"
Reasons:
  • Blacklisted phrase (1): está
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Alan Godinez Rodriguez