我正在嘗試在TFS的TEST安裝中設置/覆蓋一些設置,以強制代碼分析和生成過程中的相關設置(不管項目文件的設置如何)在TFSBuild.proj中設置代碼分析設置
目前,我們在我們的測試TFS安裝使用:
- 的Visual Studio 2012最終在我們的開發機器和構建服務器
- 有TFS 2012一臺服務器上安裝(應用程序和數據層)
- 已安裝在另一臺服務器
我們可以編譯樣本.NET 4.5的項目(類庫(DLL),web應用等)的預期TFS 2012生成服務(控制器和代理)。這僅僅是爲了覆蓋相關的代碼分析設置(希望)。
場景1 - 在我們的開發人員機器上的示例應用程序中,當您選擇項目設置(右鍵單擊 - >解決方案資源管理器中的屬性)時,如果打開「啓用代碼分析」並從下拉列表中選擇一個規則集會執行,因此它會生成一些警告。如果在記事本中打開,此技術將<RunCodeAnalysis>false</RunCodeAnalysis>
添加到* .csproj文件。如果構建被執行以編譯示例項目/解決方案,則代碼分析按預期執行。我不想在每個項目上這樣做,因爲開發人員可以關閉它(儘管我希望有辦理登機手續的政策和/或私人/門控簽到以及強制這一點)。我們可以在我們的TFSBuild.proj文件中禁用「啓用代碼分析生成」複選框並強制代碼分析(我們(將)使用默認的upgradetemplate.xaml作爲流程定義,因爲我們將從2008 TFS在我們的LIVE TFS安裝)具有:
<RunCodeAnalysis>Always</RunCodeAnalysis>
這個工作,這是我們如何將迫使(教訓仍然需要學習:-))代碼分析我們建立。
當設置其他assosicated代碼分析設置時,問題就出現了。例如,將哪些默認規則集應用/使用或將CA警告視爲錯誤。其中一些設置可以通過在記事本中編輯* .csproj在VS中或全部設置。如果我編輯* .csproj,那麼這些值將在構建中按預期使用(以及在開發人員計算機上的本地)。這並不理想,因爲我想在TFSBuild.proj中集中執行,而不必編輯每個項目文件。我相信我可以使用設置,如在我TFSbuild.proj文件:
<PropertyGroup>
<RunCodeAnalysis>Always</RunCodeAnalysis>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
</PropertyGroup>
但他們似乎沒有工作,或者我把它們放錯了地方?我如何修復/正確使用它們?
FYI我通過建立我在TFSBuild.proj解決方案:
<Project DefaultTargets="DesktopBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets" />
<ItemGroup>
<SolutionToBuild Include="/some folder/some solution.sln" />
<ConfigurationToBuild Include="Debug|Any CPU">
<FlavorToBuild>Debug</FlavorToBuild>
<PlatformToBuild>Any CPU</PlatformToBuild>
</ConfigurationToBuild>
</ItemGroup>
</Project>
在構建服務器我確實發現在C基準爲代碼分析目標文件:\程序文件(x86)\的MSBuild \微軟\ VisualStudio \ v11.0 \ CodeAnalysis,但我不想更改構建服務器上的默認行爲(儘管它在我這樣做時可以工作)。例如CodeAnalysisTreatWarningsAsErrors的條件必須被評估爲false。它就像我的值不是從TFSBuild.proj中讀取的,而是從.csproj文件中讀取的。
任何問題隨時問和提前