practices generate example code best visual-studio-2010 visual-studio compiler-warnings documentation-generation xml-comments

visual-studio-2010 - generate - summary c# example



VS2010: Archivos autogenerados y documentación XML. (4)

Esto es solo una pregunta que se hace sobre Visual Studio 2008 . ¿VS2010 ofrece alguna función para deshacerse de la advertencia del compilador CS1591 para el código generado automáticamente?

CS1591: Missing XML comment for publicly visible type or member

Para citar la pregunta para VS2008:

Esto es una molestia más que un problema. Mi proyecto contiene una serie de archivos generados automáticamente (utilizando mgmtclassgen.exe). Cuando genero la documentación XML, mi biblioteca bellamente comentada está plagada de advertencias de documentación xml de estos archivos autogen.

¿Hay alguna forma de a) suprimir la generación de documentación para estos archivos o b) suprimir la advertencia CS1591 solo para un conjunto de archivos? Obviamente no quiero modificar los archivos que se generan automáticamente, incluso si solo se agregan pragmas de supresión.

EDITAR: En mi caso, los archivos ofensivos son generados por los servicios RIA de WCF, por lo que el archivo que genera los errores es la clase de contexto web generado automáticamente ( MyProject.BusinessApplication.Web.g.cs ).

No puedo modificar manualmente este archivo porque se genera sobre la marcha, todos los cambios se eliminarán. Tampoco quiero deshabilitar globalmente la advertencia, ya que es útil en mi código no autogenerado.


De manera similar a la solución de Quam Loc, es posible deshabilitar las advertencias en los archivos generados por RIA usando un objetivo de compilación:

<Target Name="CreateRiaClientFilesTaskDisableWarnings" AfterTargets="CreateRiaClientFiles"> <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do echo #pragma warning disable &gt; %%f.temp" /> <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do type %%f &gt;&gt; %%f.temp" /> <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do attrib -r %%f" /> <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do move /y %%f.temp %%f" /> <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do attrib +r %%f" /> <Message Text="CreateRiaClientFilesTaskDisableWarnings: @(RiaClientGeneratedFiles)" /> </Target>

Acabo de publicar al respecto en mi blog .


El siguiente artículo puede provocarle algunos consejos para resolver el problema: http://lvquoc.blogspot.com/2010/11/disable-xml-comment-warning-in-workflow.html

La parte importante del artículo es el comentario de Alan McBee: para deshabilitar las advertencias generadas en el flujo de trabajo de Windows VS2012 + agregue esto al final de su archivo de proyecto:

<Target Name="XamlGeneratedCodeWarningRemoved" AfterTargets="MarkupCompilePass2"> <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do echo #pragma warning disable 1591 > %%f.temp" /> <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do type %%f >> %%f.temp" /> <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do echo #pragma warning restore 1591 >> %%f.temp" /> <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do move /y %%f.temp %%f" /> <Message Text="Xaml Generated Code Warnings Removed: @(_GeneratedCodeFiles)" /> </Target>


Estaba teniendo un problema similar con las clases de marcos de entidades generadas automáticamente. Logré resolverlo modificando el archivo de plantilla. Obviamente, esto no funcionará para todos los escenarios generados automáticamente y puede que no se aplique a su escenario particular de RIA, pero publicaré aquí para cualquier otra persona que pueda tener el mismo problema.

Abra el archivo de plantilla (something.tt) y busque la sección de comentarios XML generados automáticamente

//------------------------------------------------------------------------------ // <auto-generated> // This code was generated from a template. // // Manual changes to this file may cause unexpected behavior in your application. // Manual changes to this file will be overwritten if the code is regenerated. // </auto-generated> //------------------------------------------------------------------------------

Agregue la siguiente línea justo después del bloque de comentarios

#pragma warning disable 1591

Un poco más abajo, deberías encontrar dónde termina el bloque de espacio de nombres. Probablemente se verá algo como esto

if (!String.IsNullOrEmpty(ObjectNamespace)) { PopIndent(); #> }

Coloque la siguiente línea después de que la llave de cierre

#pragma warning restore 1591

Si todo funcionó correctamente, siempre que sus clases sean generadas automáticamente por Entity Framework, deben estar envueltas por las declaraciones pragma inhabilitar / restaurar. Esto debería suprimir las advertencias sobre la ausencia de comentarios XML en sus clases de EF sin suprimir las advertencias en el nivel del proyecto.


Me enfrentaba a un problema similar. Lo que hice fue en cualquier página si no hay Comentarios XML para el espacio de nombres, solo agregue la línea de código que aparece a continuación y no tendrá un error similar.

''/// <summary> /// Namespace provides implementation for ABC classes. /// </summary> [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] class NamespaceDoc { }''