Próbuję ustawić/przesłonić niektóre ustawienia w naszej instalacji TEST TFS w odniesieniu do wymuszania analizy kodu i ustawień assosicated podczas procesu budowania (niezależnie od ustawienia pliku projektu)Ustawienia analizy kodu w TFSBuild.proj
obecnie stosujemy w naszej instalacji TEST TFS:
- Visual Studio 2012 Ostateczny na naszych maszynach deweloper i zbudować serwer
- Czy TFS 2012 zainstalowany na jednym serwerze (warstwa aplikacji i danych)
- Zbuduj usługę TFS 2012 (kontroler i agent) zainstalowany na innym serwerze
Możemy skompilować przykładowe projekty .net 4.5 (biblioteki klas (DLL), aplikacje internetowe itp.) Zgodnie z oczekiwaniami. Ma to wyłącznie związek z nadpisaniem ustawień analizy kodu (miejmy nadzieję).
Scenariusz 1 - W naszych przykładowych aplikacjach na naszych komputerach programistycznych po wybraniu ustawień projektu (prawy przycisk myszy -> właściwości w eksploratorze rozwiązań) przejdź do karty Analiza kodu, jeśli włączę opcję "Włącz analizę kodu przy kompilacji" i wybierz zestaw reguł z rozwijanego menu, który działa jako zewnętrzny, dlatego wygeneruje kilka ostrzeżeń. To techniczne dodaje <RunCodeAnalysis>false</RunCodeAnalysis>
do pliku * .csproj, jeśli jest otwarty w notatniku. Jeśli kompilacja jest wykonywana w celu kompilacji przykładowego projektu/rozwiązania, wówczas analiza kodu jest przeprowadzana zgodnie z oczekiwaniami. NIE chcę tego robić w każdym projekcie, ponieważ programista może go wyłączyć (chociaż staram się mieć zasady check-in i/lub prywatne/kontrolowane checkiny, aby to wymusić).
Scenariusz 2 - Mogę wyłączyć pole wyboru "Włącz analizę kodu podczas kompilacji" i wymuś analizę kodu w pliku TFSBuild.proj (my (użyjemy) użyjemy domyślnej aktualizacji standardu.xaml jako naszej definicji procesu, ponieważ będziemy aktualizować z TFS 2008 na naszej LIVE instalacji TFS) poprzez:
<RunCodeAnalysis>Always</RunCodeAnalysis>
to działa i to w jaki sposób będziemy zmuszać (lekcje nadal się nauczyć :-)) Code Analysis na naszej buduje.
Problem pojawia się podczas ustawiania innych ustawień analizy kodu. Na przykład, które domyślne zestawy reguł mają stosować/używać lub traktować ostrzeżenia CA jako błędy. Niektóre z tych ustawień można ustawić w VS lub wszystkie z nich, edytując * .csproj w notatniku. Jeśli edytuję plik * .csproj, te wartości są używane w kompilacji zgodnie z oczekiwaniami (a także lokalnie na komputerze programisty). To nie jest idealne, ponieważ chcę to zrobić centralnie w TFSBuild.proj bez konieczności edycji każdego pliku projektu. Wierzę, że mogę korzystać z takich ustawień, jak w moim pliku TFSbuild.proj:
<PropertyGroup>
<RunCodeAnalysis>Always</RunCodeAnalysis>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
</PropertyGroup>
Ale nie wydaje się, aby pracować lub kładę je w niewłaściwym miejscu? Jak naprawić/użyć ich poprawnie?
FYI budować moje rozwiązania TFSBuild.proj przez:
<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>
Na serwerze kompilacji znalazłem odniesienie do pliku docelowego dla kodu Analiza w katalogu C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ CodeAnalysis, ale nie chcę zmieniać domyślnego zachowania na serwerze kompilacji (chociaż działa, gdy robię). Warunek na przykład dla CodeAnalysisTreatWarningsAsErrors musi zostać oceniony jako fałszywy. To jak moje wartości nie są czytane z TFSBuild.proj, ale są z pliku .csproj.
Wszelkie pytania prosimy pytać i dzięki z góry