2009年11月5日 星期四

如何將程式碼分析的定義匯出給不同專案參考

最近因為某個大型專案開始進行開發,當然為了確保PR能遵守專案的命名規則及設計規範,所以要求所有程式必須進行程式碼分析,符合我們事先討論好的規則後才能簽入.
但是,由於我們這個系統切割成2,30個專案,而VS的程式碼分析工具是By專案去定義的,莫非要一個專案一個專案去定義不成?而且如果將來調整了某些規則,不就每個專案都要去勾一次, 那不瘋掉才怪,google了一下還好有解,以下是我試出來的步驟:
1.先開啟一個空專案,在專案屬性中的程式碼分析頁籤中先勾選好所要的規則
2.儲存專案後,用記事本打開專案檔(.vbproj or .csproj),找到<CodeAnalysisRules>的地方,將裏面的內容copy起來
3.用記事本開啟一個新文件,內容如下,然後將{在此貼上}換成你在步驟2的內容,然後將此檔存成XXX.CodeAnalysis.Rules.targets, 你可以將XXX改成你的專案或公司名稱,儲存位置建議放在.sln的同一層資料夾中,好讓所有專案參考此檔的位置能固定
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">                        
<PropertyGroup>
<CodeAnalysisRules>$(CodeAnalysisRules);{在此貼上}</CodeAnalysisRules>  
</PropertyGroup>
</Project>

4.接下來打開你真正開發專案的專案檔,找到<Import Project="…" 的位置(應該在</Project>的前面一點), 在後面增加一行


<Import Project="$(MSBuildProjectDirectory)\..\XXX.CodeAnalysis.Rules.targets" />

其中MSBuildProjectDirectory指的是你專案檔的絕對路徑,這樣就可以參考到剛剛我們打好的程式碼分析定義檔了

5.打開專案->屬性->程式碼分析,你會看到專案已經成功設定好程式碼分析的規則了,建議將定義檔簽入TFS,以方便專案成員取得及控管.

沒有留言:

張貼留言