Estoy intentando establecer/anular algunas configuraciones en nuestra instalación TEST de TFS con respecto a forzar el análisis de código y configuración asignada durante el proceso de compilación (independientemente de la configuración del archivo de proyecto)Configuración de configuración de análisis de código en TFSBuild.proj
utilizamos actualmente en nuestra instalación de prueba TFS:
- Visual Studio 2012 último en nuestras máquinas de desarrollador y de creación de servidores
- Ha TFS 2012 instalado en un servidor (aplicación y la capa de datos)
- Tener el servicio de compilación TFS 2012 (controlador y agente) instalado en otro servidor
Podemos compilar ejemplos de proyectos .net 4.5 (bibliotecas de clases (DLL), aplicaciones web, etc.) como se esperaba. Esto solo tiene que ver con anular las configuraciones asociadas de Análisis de Código (con suerte).
Escenario 1 - En nuestras aplicaciones de muestra en nuestras máquinas reveladoras cuando selecciona la configuración del proyecto (clic derecho -> propiedades en el explorador de soluciones), vaya a la pestaña Análisis de código si enciendo el "Habilitar análisis de código en la compilación" y seleccione un conjunto de reglas del menú desplegable que se ejecuta como se exepto, por lo tanto, generará algunas advertencias. Esta técnica agrega <RunCodeAnalysis>false</RunCodeAnalysis>
al archivo * .csproj si se abre en el bloc de notas. Si la compilación se ejecuta para compilar el proyecto/solución de muestra, entonces el Análisis de código se realiza como se esperaba. NO quiero hacer esto en cada proyecto porque un desarrollador podría desactivarlo (aunque estoy buscando tener políticas de check-in y/o checkins privados/cerrados para forzar esto de todos modos).
Escenario 2: puedo deshabilitar la casilla de verificación "Habilitar análisis de código en compilación" y forzar el análisis de código en nuestro archivo TFSBuild.proj (usaremos el upgradeitemplate.xaml predeterminado como definición de proceso porque vamos a actualizar desde TFS 2008 en nuestra instalación VIVO TFS) por tener:
<RunCodeAnalysis>Always</RunCodeAnalysis>
esto funciona y así es como vamos a la fuerza (lecciones aprendidas sigue siendo :-)) Análisis de código en nuestro construcciones.
El problema se presenta cuando se configuran otras configuraciones de análisis de código. Por ejemplo, qué conjunto de reglas predeterminadas aplicar/usar o tratar las advertencias de CA como errores. Algunas de estas configuraciones se pueden establecer en VS o en todas ellas editando * .csproj en el bloc de notas. Si edito * .csproj, estos valores se utilizan en la compilación como se espera (y también localmente en la máquina del desarrollador). Esto no es ideal ya que quiero hacerlo centralmente en TFSBuild.proj sin tener que editar cada archivo de proyecto. Creo que puedo usar la configuración, como en mi archivo TFSBuild.proj:
<PropertyGroup>
<RunCodeAnalysis>Always</RunCodeAnalysis>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
</PropertyGroup>
Pero ellos no parecen funcionar o Los pongo en el lugar equivocado? ¿Cómo los arreglo/uso correctamente?
FYI construyo mis soluciones en TFSBuild.proj por:
<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>
En el servidor de compilación he encontrado referencia al archivo de destino para el análisis de código en C: \ Archivos de programa (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ CodeAnalysis pero no quiero cambiar el comportamiento predeterminado en el servidor de compilación (aunque funciona cuando lo hago). La condición, por ejemplo, para CodeAnalysisTreatWarningsAsErrors debe ser evaluada como falsa. Es como que mis valores no se leen desde TFSBuild.proj, sino que son del archivo .csproj.
Cualquier pregunta no dude en preguntar y gracias de antemano