『壹』 代碼度量的結果顯示
當 Visual Studio 分析代碼後,將在復「代制碼度量結果」窗口中顯示結果。該窗口頂部有一個工具欄,還有一些用於顯示計算結果的列。
「層次結構」列包含一個代碼層次結構樹視圖,您可以展開或折疊此視圖以查看所需的詳細信息級別。其餘各列顯示計算的結果。您可以根據需要隱藏或排列結果列。有關更多信息,請參見 如何:添加、移除列或對列進行重排。
「可維護性」列中除了數字結果外還包含一個圖標。綠色圖標表示可維護性程度相對較高。黃色圖標表示中等可維護性程度。紅色圖標表示可維護性低或存在潛在的故障點。這些顏色指示符與 FxCop 規則 AvoidUnmaintainableCode 所使用的嚴重級別相對應。如果可維護性指數低於 10,則此規則將激發錯誤;如果指數介於 10 和 20 之間,則激發警告;如果指數高於 20,則既不激發錯誤,也不激發警告。可維護性指數是以下三種度量值的綜合體現:圈復雜度、代碼行數以及算術復雜度。可維護性指數的值沒有單位。
『貳』 visualstudio2012計算代碼
VS2005,2003和2002的開源行計數器可在此處獲得:
http://www.wndtabs.com/
此處還討論了創建一個計算VS插件的行,在Codeproject上完成代碼
http://www.codeproject.com/KB/macros/LineCounterAddin.aspx
另外Slick Edit Gadgets有一個很好的行計數器,這里:
http://www.slickedit.com/procts/slickedit
和Microsoft Visual Studio Team System 2008包括一個良好的行計數器。
請記住:
通過代碼行測量編程進度就像按重量測量飛機構建進度一樣。 比爾蓋茨
#3樓
在Visual Studio Team System 2008中,您可以從菜單Analyze - >'Calculate Code Metrics for Solution'中進行操作,它將為您提供整個解決方案的行數(除其他外g )
#4樓
我發現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>
為什麼在單個命令行執行時會使用整個應用程序? :)
#5樓
cloc是一個出色的命令行,基於Perl的Windows可執行文件,它將分解按文件格式分組的空白行,注釋行和源代碼行。
現在它不會專門在VS解決方案文件上運行,但它可以通過目錄遞歸,您可以根據需要設置文件名過濾器。
以下是其網頁的示例輸出:
prompt> cloc perl-5.10.0.tar.gz
4076 text files.
3883 unique files.
1521 files ignored.
http://cloc.sourceforge.net v 1.07 T=10.0 s (251.0 files/s, 84566.5 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code scale 3rd gen. equiv
-------------------------------------------------------------------------------
Perl 2052 110356 112521 309778 x 4.00 = 1239112.00
C 135 18718 22862 140483 x 0.77 = 108171.91
C/C++ Header 147 7650 12093 44042 x 1.00 = 44042.00
Bourne Shell 116 3402 5789 36882 x 3.81 = 140520.42
Lisp 1 684 2242 7515 x 1.25 = 9393.75
make 7 498 473 2044 x 2.50 = 5110.00
C++ 10 312 277 2000 x 1.51 = 3020.00
XML 26 231 0 1972 x 1.90 = 3746.80
yacc 2 128 97 1549 x 1.51 = 2338.99
YAML 2 2 0 489 x 0.90 = 440.10
DOS Batch 11 85 50 322 x 0.63 = 202.86
HTML 1 19 2 98 x 1.90 = 186.20
-------------------------------------------------------------------------------
SUM: 2510 142085 156406 547174 x 2.84 = 1556285.03
-------------------------------------------------------------------------------
第三代等效量表是對第三代語言所需代碼量的粗略估計。 不是非常有用,但無論如何都很有趣。
#6樓
這里的答案有點過時,可能來自vs 2008時間。 因為在較新的Visual Studio版本2010/2012中,此功能已內置。 因此,沒有理由使用任何擴展或工具。
計算代碼行的功能 - 計算指標。 有了它,您可以計算每個項目或解決方案的指標(LOC,維護指數,Cyclomatic指數,繼承深度)。
在解決方案資源管理器中右鍵單擊解決方案或項目
並選擇「計算指標」
以後可以將用於分析和聚合的數據導入Excel。 同樣在Excel中,您可以過濾掉生成的類或指標中的其他噪音。 這些指標(包括代碼行LOC)也可以在構建過程中收集,並包含在構建報告中
#7樓
顯然工具更容易,但我覺得很酷在powershell :)
此腳本查找.sln文件中的所有.csproj引用,然後在每個csproj文件中找到包含在編譯中的文件。 對於包含在編譯中的每個文件,它會創建一個具有屬性的對象:Solution,Project,File,Lines。 它將所有這些對象存儲在列表中,然後根據需要對數據進行分組和投影。
#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}
#8樓
這是Trick ..它也計算Js文件。
http://www.spoiledtechie.com/post/2011/11/22/How-To-Count-Lines-of-Code-in-Visual-Studio.aspx
#9樓
正則表達式在VS2010和2012之間發生了變化,因此這里的大多數正則表達式解決方案都不再有效
(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+
將找到所有非空白的行,不僅僅是一個括弧('{'或'}'),而不僅僅是#include或其他預處理器。
使用Ctrl - shift - f並確保啟用正則表達式。
VS 2010及更早版本的相應正則表達式為
^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+
#10樓
以下是Visual Studio 2012/2013/2015的更新,適用於那些想要執行「查找」選項(我認為最簡單)的人:此RegEx將查找包含多個排除項的所有非空白行,以提供最准確的結果。
在「查找」框中輸入以下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 */
用於智能感知的XML
/// <summary>
/// I'm a class description for Intellisense
/// </summary>
HTML評論:
<!-- I am a HTML Comment -->
使用陳述:
using System;
using System.Web;
打開花括弧:
{
閉合花括弧:
}
注意:大括弧之間的任何內容都將包含在搜索中,但在此示例中,只計算4行代碼,而不是18個實際的非空白行:
public class Test
{
/// <summary>
/// Do Stuff
/// </summary>
public Test()
{
TestMe();
}
public void TestMe()
{
//Do Stuff Here
/* And
* Do
* Stuff
* Here */
}
}
我創建了這個以給我一個比以前的選項更准確的LOC計數,並認為我會分享。 老闆喜歡LOC計數,所以我堅持了一段時間。 我希望其他人可以找到這個有用的,如果您有任何問題或需要幫助讓它工作,請告訴我。
#11樓
其他簡單工具適用於VS2008(開源): http : //www.accendo.sk/Download/SourceStat.zip
#12樓
您可以使用免費工具SourceMonitor
提供了許多措施:代碼行,語句計數,復雜性,塊深度
通過圖表輸出圖形
#13樓
您可以使用Visual Studio代碼指標PowerTool 10.0 。 它是一個命令行實用程序,可以為您計算託管代碼的一些指標(包括代碼行)。 您可以獲得一個VS 2010插件, 將該工具引入Visual Studio ,並使其快速選擇菜單項並單擊「Analyze Solution」。
#14樓
找到這個提示: LOC與VS查找和替換
不是插件,如果這就是你要找的東西。
#15樓
一個簡單的解決方案是搜索所有文件。 使用通配符時鍵入「*」。 哪個會匹配所有線路。 在查找結果窗口的末尾,您應該看到排序的一行:
Matching lines: 563 Matching files: 17 Total files searched: 17
當然,這對於大型項目來說並不是很好,因為所有行都被配對並載入到內存中以便在查找結果窗口中顯示。
參考:
高級示例
#16樓
我更喜歡OxyProject Metrics VS Addin。
#17樓
嘗試neptuner。 除了LoC之外,它還為您提供空格,製表符,注釋行等內容。 http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip
#18樓
在Visual Studio 2015中,轉到「分析」菜單,然後選擇「計算代碼度量標准」。
#19樓
Visual Studio 2010 Ultimate具有此內置功能。
分析 - >計算代碼度量標准
#20樓
您可以在Visual Studio 2010中使用Project Line Counter載入項。通常它不能與Visual Studio 2010一起使用,但它可以使用有用的.reg文件: http : //www.onemanmmo.com/index。 PHP?CMD = newsitem及評論= news.1.41.0
#21樓
使用Visual Studio 2010 Ultimate中的菜單 - >分析 - >計算代碼度量標准選項。
#22樓
我想出了一個快速而臟的PowerShell腳本,用於計算文件夾結構中的行數。 它不像其他答案中引用的其他工具那樣功能齊全,但我認為在項目或解決方案中提供相對於彼此的代碼文件大小的粗略比較是足夠好的。
腳本可以在這里找到:
https://gist.github.com/1674457
#23樓
我用了Ctrl + Shift + F. 接下來,在搜索框中輸入\\n並啟用正則表達式框。 然後在查找結果中,在屏幕的末尾是搜索到的文件數和找到的代碼行。
#24樓
同意Ali Parr。 WndTab Line Counter addin就是這樣一個工具。 http://www.codeproject.com/KB/macros/linecount.aspx
從下載站點搜索以查找一些相關工具也是一個好主意。 http://www.cnet.com/1770-5_1-0.html?query=code+counter&tag=srch
#25樓
對於未來的讀者,我想建議Visual Studio 2010的DPack擴展 。
它內置了大量的實用程序,包括一個行計數器,它表示有多少行是空白的,代碼等等。
原文鏈接:https://es.sofbug.com/question/5DoH
點
『叄』 visual studio2012統計行數的時候注釋的算不算
軟糖來回答羅:
計算代碼度量值統計的行數非常不準確,會導致行數只有實際行數的1/4左右。
它僅僅統計方法體內有意義的調用語句,連定義語句都不計算在內。
正確的統計代碼行方式:
按Ctrl+F打開查找欄,b*[^:b#/]+.*$,將這個正則表達式填進去,
勾選使用正則表達式,將查找范圍設定為整個項目/解決方案,點擊查找全部按鈕,
然後在 查找結果 1 窗口中,拖到最底部,再往上拖一點一點,最後一行文字:
匹配行: 13914 匹配文件數: 300 已搜索文件總數: 300
另外,搜SourceCounter這個東東可以統計VS行數。可以選擇是否包含注釋。