2012-03-21 5 views

Respuesta

13

hay tres condiciones para que un proyecto sea procesada automáticamente por PostSharp:

  1. PostSharp se ha instalado utilizando el programa de instalación.
  2. El proyecto tiene una referencia (directa o indirecta) a PostSharp.dll.
  3. La propiedad MSBuild SkipPostSharp es diferente a la verdadera y el símbolo de compilación SkipPostSharp no está definido.

La tercera condición es la que se convierte en falsa cuando se desactiva PostSharp marcando la opción en las propiedades del proyecto VS.

Puede desactivar PostSharp de forma predeterminada estableciendo la propiedad SkipPostSharp = True de forma predeterminada. Esto puede lograrse mediante la creación de un archivo llamado PostSharp.Custom.targets en uno de los directorios padre de sus proyectos, con el siguiente contenido:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <SkipPostSharp Condition="'$(SkipPostSharp)'==''">True</SkipPostSharp> 
    </PropertyGroup> 
</Project> 

Luego, en cada proyecto, donde PostSharp es realmente necesario, se necesitaría para definir la propiedad SkipPostSharp = False. Tendrás que hacer eso usando un editor de texto, porque la pestaña de propiedad del proyecto solo permite establecer la propiedad en True o indefinirla.

+0

Solo por aclarar ... Si tengo un directorio llamado 'SourceCode' en el que residen todos mis directorios de proyectos, entonces podría crear el archivo PostSharp.Custom.targets en esa carpeta y cualquier proyecto nuevo que otras personas creen lo hará * no * automáticamente utiliza publicación nítida incluso si hacen referencia a otros proyectos que sí lo hacen. ¿Es eso correcto? –

+0

Suponiendo que sus proyectos van a la carpeta SourceCode, por supuesto. –

+1

Esto se documenta aquí: http://doc.sharpcrafters.com/postsharp-2.1/Content.aspx/PostSharp-2.1.chm/html/b1071f40-36ec-488c-a418-c9f19e3c8dbc.htm. Básicamente, PostSharp buscará en los directorios principales del archivo del proyecto, por lo que el archivo se puede compartir entre varios proyectos y soluciones. –

Cuestiones relacionadas