ProgramingTip

Visual Studio 솔루션에서 코드 줄을 어떻게 계산합니까?

bestdevel 2020. 9. 29. 08:10
반응형

Visual Studio 솔루션에서 코드 줄을 어떻게 계산합니까?


전체 솔루션에서 코드 줄 수를 있습니까? MZ-Tools에 대해 설명 하는 것이 있습니다.


Visual Studio 2010 Ultimate에는 기본 제공 기능이 있습니다.

분석-> 코드 계산


나는 이것에 유용한 powershell을 발견 했습니다. 어쨌든 LoC는 실제로 가짜라고 생각하기 때문에 그렇게 생각합니다.

작은 솔루션의 디렉토리에서 :

PS C:\Path> (gci -include *.cs,*.xaml -recurse | select-string .).Count
8396
PS C:\Path>

그러면 모든 솔루션의 .cs 및 .xaml 파일에서 비어 있지 않은 줄이 계산됩니다. 더 큰 프로젝트의 경우 다른 확장 목록을 사용했습니다.

PS C:\Other> (gci -include *.cs,*.cpp,*.h,*.idl,*.asmx -recurse | select-string .).Count
909402
PS C:\Other>

단일 명령 줄로 할 때 전체 앱을 사용하는 이유는 무엇입니까? :)


나는 Ctrl+ Shift+를 사용했습니다 F. 다음으로 \n검색 창에 입력하고 정규식 상자를 활성화합니다. 그런 다음 검색 결과의 화면 끝에 검색된 파일 수와 코드 줄이 있습니다.


VS2005, 2003 및 2002 용 오픈 소스 라인 카운터는 여기에서 사용할 수 있습니다.

http://www.wndtabs.com/

Codeproject의 코드로 완성 된 라인 카운팅 VS 애드 인 생성에 대한 논의도 있습니다.

http://www.codeproject.com/KB/macros/LineCounterAddin.aspx

또한 Slick Edit Gadgets에는 멋진 라인 카운터가 있습니다.

http://www.slickedit.com/products/slickedit

Microsoft Visual Studio Team System 2008에는 좋은 라인 카운터가 포함되어 있습니다.

그래도 기억하십시오.

코드 줄로 프로그래밍 진행률을 측정하는 것은 항공기 제작 진행률을 무게로 측정하는 것과 같습니다. 빌 게이츠


이 팁을 찾았 습니다. VS 찾기 및 사용하는 LOC

그것이 당신이 찾고있는 것이라면 그것이 아닙니다.


다음은 "찾기"옵션을 수행하려는 사용자를위한 Visual Studio 2012/2013/2015 업데이트입니다 (가장 쉬운 방법 임).이 RegEx는 가장 정확한 결과를 제공하기 위해 몇 가지 제외 사항이있는 비어 있지 않은 모든 줄을 찾습니다. .

"찾기"상자에 다음 정규식을 입력하십시오. "정규식 사용"옵션을 선택하십시오. 필요에 따라 검색 옵션을 "현재 프로젝트"또는 "전체 솔루션"으로 변경합니다. 이제 "모두 찾기"를 선택하십시오. 결과 찾기 창의 맨 아래에 "일치하는 줄"이 표시됩니다. 이것은 코드 수의 줄입니다.


^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$

이 RegEx는 다음 항목을 제외합니다.


게임

// This is a comment

여러 줄 주석 (줄이 각 줄 앞에 *로 주석 처리가 가정)

/* I am a
* multi-line
* comment */

Intellisense 용 XML

/// <summary>
/// I'm a class description for Intellisense
/// </summary>

HTML 주석 :

<!-- I am a HTML Comment -->

문 사용 :

using System;
using System.Web;

중괄호 열기 :

{

닫는 중괄호 :

}

참고 : 중괄호 사이의 모든 항목이 검색에 포함이 예 대신 공백이 아닌 실제 18 줄 4 줄의 코드 만 계산됩니다.

        public class Test
        {
            /// <summary>
            /// Do Stuff
            /// </summary>
            public Test()
            {
                TestMe();
            }
            public void TestMe()
            {
                //Do Stuff Here
                /* And
                 * Do
                 * Stuff
                 * Here */
            }
        }

이전 옵션보다 훨씬 더 정확한 LOC 수를 제공 할 수 있습니다. 사장님들은 LOC 발표를 좋아하기 때문에 잠시 동안 갇혀 있습니다. 다른 사람이 도움이 되셨기를 바랍니다. 질문이 있거나 작동하는 데 도움이 필요하면 알려주세요.


cloc 은 파일 형식별로 그룹화 된 빈 줄, 주석 처리 된 줄 및 코드 소스 줄을 구분하는 명령 줄, Perl 기반, Windows 실행 가능 프로그램입니다.

이제 특별히 VS 솔루션 파일에서 실행되지는 않지만 디렉터리를 통해 재귀 할 수 있으며 적절하다고 판단되는 파일 이름 필터를 설정할 수 있습니다.

다음은 웹 페이지의 샘플 출력입니다.


프롬프트> cloc perl-5.10.0.tar.gz
    4076 텍스트 파일.
    3883 고유 파일.                                          
    1521 개의 파일이 무시되었습니다.

http://cloc.sourceforge.net v 1.07 T = 10.0 초 (251.0 개 파일 / 초, 84566.5 줄 / 초)
-------------------------------------------------- -----------------------------
언어 파일 빈 주석 코드 스케일 3 세대. 동등
-------------------------------------------------- -----------------------------
펄 2052 110356 112521 309778 x 4.00 = 1239112.00
C 135 18718 22862 140483 x 0.77 = 108171.91
C / C ++ 헤더 147 7650 12093 44042 x 1.00 = 44042.00
본 쉘 116 3402 5789 36882 x 3.81 = 140520.42
리스프 1684 2242 7515 x 1.25 = 9393.75
7498473 2044 x 2.50 = 5110.00 만들기
C ++ 10312277 2000 x 1.51 = 3020.00
XML 26231 0 1972 x 1.90 = 3746.80
yacc 2128 97 1549 x 1.51 = 2338.99
YAML 2 20 489 x 0.90 = 440.10
DOS 배치 11 85 50322 x 0.63 = 202.86
HTML 1 19 2 98 x 1.90 = 186.20
-------------------------------------------------- -----------------------------
합계 : 2510 142085 156406 547174 x 2.84 = 1556285.03
-------------------------------------------------- -----------------------------

3 세대에 해당하는 척도는 3 세대 언어 에서 얼마나 많은 코드가 소요 될지 대략적인 추정치입니다 . 별로 유용하지는 않지만 어쨌든 흥미 롭습니다.


여기에 대한 답변은 약간 구식이며 2008 년과 비교했을 수 있습니다. 최신 Visual Studio 버전 2010/2012에서는이 기능이 이미 내장되어 있기 때문입니다. 따라서 확장이나 도구를 사용할 이유가 없습니다.

코드 줄을 계산하는 기능-메트릭 계산. 이를 통해 각 프로젝트 또는 솔루션에 대한 메트릭 (LOC, 유지 관리 인덱스, 순환 인덱스, 상속 깊이)을 계산할 수 있습니다.

솔루션 탐색기에서 솔루션 또는 프로젝트를 마우스 오른쪽 버튼으로 클릭하고

여기에 이미지 설명 입력

"메트릭 계산"을 선택합니다.

여기에 이미지 설명 입력

나중에 분석 및 집계를위한 데이터를 Excel로 가져올 수 있습니다. 또한 Excel에서 생성 된 클래스 또는 메트릭의 기타 노이즈를 필터링 할 수 있습니다. 코드 라인 LOC를 포함한 이러한 메트릭은 빌드 프로세스 중에도 수집 될 수 있으며 빌드 보고서에 포함될 수 있습니다.


정규식이 VS2010과 2012 사이에 변경되었으므로 여기에서 대부분의 정규식 솔루션이 더 이상 작동하지 않습니다.

(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+

공백이 아니고 단일 대괄호 ( '{'또는 '}')가 아니며 #include 또는 기타 전처리 기가 아닌 모든 행을 찾습니다.

사용 Ctrl- shift- f있는지 정규 표현식가 활성화되어 있는지 확인하십시오.

VS 2010 및 이전 버전의 해당 정규 표현식은 다음과 같습니다.

^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+

Visual Studio Team System 2008에서는 메뉴 분석-> '솔루션에 대한 코드 메트릭 계산'에서 수행 할 수 있으며 전체 솔루션의 줄 수를 제공합니다 (그 중에서도 g ).


미래의 독자를 위해 Visual Studio 2010 용 DPack 확장에 대해 조언하고 싶습니다 .

빈 줄, 코드 등을 알려주는 줄 카운터를 포함하여 많은 유틸리티가 내장되어 있습니다.


간단한 해결책은 모든 파일을 검색하는 것입니다. 와일드 카드를 사용하는 동안 "*"를 입력합니다. 모든 라인과 일치합니다. 찾기 결과 창 끝에 다음과 같은 정렬 된 행이 표시됩니다.

Matching lines: 563 Matching files: 17 Total files searched: 17

물론 이것은 큰 프로젝트에는 그다지 좋지 않습니다. 모든 라인은 결과 찾기 창에서 표시 될 수 있도록 메모리에 저장되고로드되기 때문입니다.

참고:


다음을 사용할 수 있습니다.


OxyProject Metrics VS Addin을 선호합니다 .


분명히 도구가 더 쉽지만 powershell에서이 작업을 수행하는 것이 좋습니다.)

이 스크립트는 .sln 파일에서 모든 .csproj 참조를 찾은 다음 각 csproj 파일 내에서 컴파일을 위해 포함 된 파일을 찾습니다. 컴파일에 포함 된 각 파일에 대해 솔루션, 프로젝트, 파일, 라인과 같은 속성이있는 개체를 만듭니다. 이러한 모든 개체를 목록에 저장 한 다음 필요에 따라 데이터를 그룹화하고 프로젝션합니다.

#path to the solution file e.g. "D:\Code\Test.sln"
$slnFile = "D:\Code\Test.sln"


#results
$results = @()

#iterate through .csproj references in solution file
foreach($projLines in get-item $slnFile | Get-Content | Select-String '".*csproj')
{
    $projFile = [System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($slnFile), [regex]::Match($projLines,'[^"]*csproj').Value)
    $projFolder = [System.IO.Path]::GetDirectoryName($projFile)

    #from csproj file: get lines for files to compile <Compile Include="..."/>
    $includeLines = get-item $projFile | Get-Content | Select-String '<Compile Include'


    #count of all files lines in project
    $linesInProject = 0;
    foreach($fileLine in $includeLines)
    {
        $includedFilePath = [System.IO.Path]::Combine($projFolder, [Regex]::Match($fileLine, '"(?<file>.*)"').Groups["file"].Value)
        $lineCountInFile = (Get-Content $includedFilePath).Count      
        $results+=New-Object PSObject -Property @{ Solution=$slnFile ;Project=$projFile; File=$includedFilePath; Lines=$lineCountInFile }
    }
}

#filter out any files we dont need
$results = $results | ?{!($_.File -match "Designer")}


#print out:

"---------------lines per solution--------------"
$results | group Solution | %{$_.Name + ": " + ($_.Group | Measure-Object Lines -Sum).Sum}
"---------------lines per peoject--------------"
$results | group Project | %{$_.Name + ": " + ($_.Group | Measure-Object Lines -Sum).Sum}

VS2008 용 기타 간단한 도구 (오픈 소스) : http://www.accendo.sk/Download/SourceStat.zip


Visual Studio 2010 Ultimate에서 메뉴-> 분석-> 코드 메트릭 계산 옵션을 사용합니다.


Visual Studio Code Metrics PowerTool 10.0을 사용할 수 있습니다 . 관리 코드에 대한 몇 가지 메트릭 (코드 줄 포함)을 계산하는 명령 줄 유틸리티입니다. 도구를 Visual Studio로 가져 와서 메뉴 항목을 선택하고 "솔루션 분석"을 클릭하는 것처럼 빠르게 만드는 VS 2010 플러그인을 얻을 수 있습니다 .


Ali Parr와 동의합니다. WndTab Line Counter 애드 인은 그러한 도구입니다. http://www.codeproject.com/KB/macros/linecount.aspx

관련 도구를 찾기 위해 다운로드 사이트에서 검색하는 것도 좋은 생각입니다. http://www.cnet.com/1770-5_1-0.html?query=code+counter&tag=srch


여기에 트릭이 있습니다. Js 파일도 계산합니다.

http://www.spoiledtechie.com/post/2011/11/22/How-To-Count-Lines-of-Code-in-Visual-Studio.aspx


무료 도구 SourceMonitor를 사용할 수 있습니다.

코드 줄, 문 수, 복잡성, 블록 깊이 등 많은 측정 값을 제공합니다.

차트를 통해 그래픽 출력이 있음


Visual Studio 2010에서 Project Line Counter 추가 기능을 사용할 수 있습니다. 일반적으로 Visual Studio 2010에서는 작동하지 않지만 http://www.onemanmmo.com/index 에서 유용한 .reg 파일을 사용합니다 . php? cmd = newsitem & comment = news.1.41.0


폴더 구조에서 줄을 세는 빠르고 더러운 powershell 스크립트를 생각해 냈습니다. 다른 답변에서 참조 된 다른 도구 중 일부만큼 완전한 기능은 아니지만 프로젝트 또는 솔루션에서 서로 상대적인 코드 파일의 크기를 대략적으로 비교하는 데 충분하다고 생각합니다.

스크립트는 여기에서 찾을 수 있습니다.

https://gist.github.com/1674457


neptuner를 사용해보십시오. 또한 LoC 외에도 공백, 탭, 주석 줄과 같은 항목을 제공합니다. http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip


Visual Studio 2015에서 분석 메뉴로 이동하여 "코드 메트릭 계산"을 선택합니다.

참고 URL : https://stackoverflow.com/questions/1244729/how-do-you-count-the-lines-of-code-in-a-visual-studio-solution

반응형