5

En nuestro servidor de integración continuo (Teamcity 5.1.3) tenemos un script de msbuild que está construyendo automáticamente nuestras aplicaciones.¿Cómo deshabilitar "advertencia como error" solo para archivos generados? (MSBuild)

Cuando hacemos posible "Advertencia de error como": en Visual Studio, se construye muy bien (que ignora los métodos dentro "*" archivos .designer.cs Pero en el servidor de compilación siempre recibir el siguiente error:.

[(Rebuild target(s)):] somefile.Designer.cs(XX, XX): error CS1591: Warning as Error: Missing XML comment for publicly visible type or member... 

El script de MSBuild que se utiliza es el siguiente:

<MSBuild Projects="proj\$(ProjectName).sln" 
     Targets="Clean;Rebuild" 
     Properties="Configuration=Release" 
     StopOnFirstFailure="True"> 
</MSBuild> 

puedo entender por qué hace eso, sino que tiene que haber una manera de contar msbuild ignorar que faltan los comentarios en los archivos generados

?

editado

Excavar un poco más lejos: en la solución de Visual Studio que teníamos "Advertencia de error como" comprobado sino que añadimos el error 1591 que aparece en el cuadro de texto "Suprimir la advertencia". Parece que MSBuild no capta ese cuadro de texto "suprimir advertencia" y falla la compilación. ¿Algo que pueda hacer?

editar de nuevo El problema era que MSBuild se apuntan a cualquier CPU (y en la configuración de "ANY CPU" nos dio suprimida error 1591). Una vez que cambiamos CUALQUIER CPU para excluir el error 1591, todo comenzó a compilarse correctamente en el servidor de compilación. Gracias por los que ayudaron.

Respuesta

3

No, MSBuild no es exigente con los comentarios XML. Cualquier herramienta de análisis de código que use es. Adivinando algo como StyleCop. Es hace quejarse de este problema exacto, no es muy inteligente, a la par con las plantillas de proyecto de Windows Forms.

Usted sólo es cada vez va a resolver este problema si se aplican la misma clase de reglas de generación en los desarrolladores medida que se aplican a la construcción de servidor. Porque uno de ellos tendrá que editar el código do-not-edit que está en un archivo Mumble.Designer.cs y aplicar el atributo [GeneratedCode]. No está allí ahora.

Eso es un problema político, uno que no puedo ayudarle con. Tampoco los grupos de Microsoft que trabajaron en esto en diferentes momentos y diferentes edificios. Pero puedes contar con los desarrolladores ladrando ruidosamente si les pides que resuelvan el problema.

que sea coherente.

+0

He editado mi pregunta para reflejar las nuevas informaciones que he encontrado. Aunque todavía estoy un poco desconcertado, tu respuesta me ayudó a cavar en la dirección correcta. – Benoittr

+0

Incluso la respuesta no fue responder directamente a la pregunta (y mi pregunta no estaba totalmente clara al principio ... ver las ediciones) Seguí adelante y acepté su respuesta, ya que de alguna manera me llevó a la respuesta que quería. – Benoittr

2

Puede pasar por alto los comentarios de advertencia mediante la adición de la siguiente propiedad en su msbuildcall: nowarn = "1591,1573".

<MSBuild Projects="proj\$(ProjectName).sln" 
    Targets="Clean;Rebuild" 
    Properties="Configuration=Release;nowarn=1591,1573" 
    StopOnFirstFailure="True"> 
</MSBuild> 
0

Para mí el problema ocurría sólo en un proyecto DLL con una referencia de servicio SOAP. Cuando abrí la configuración del proyecto en la pestaña Construí, noté que estaba marcada una casilla llamada "Archivo de documentación XML". ¡Esa fue la razón detrás de forzar a cada miembro expuesto del servicio SOAP a tener un comentario!

This checkbox enforces /doc option in my build settings

Cuestiones relacionadas