是否可以选择PostSharp处理哪些项目而不是告诉它哪些项目可以排除?

时间:2012-03-21 23:59:25

标签: postsharp

我可以指定SkipPostSharp常量,以确保项目从PS流程列表中排除。我想以相反的方式做到这一点。我希望PS假设它不应该处理任何我没有具体告诉它的东西。

这可以实现吗?

1 个答案:

答案 0 :(得分:14)

PostSharp自动处理项目有三个条件:

  1. 已使用安装程序安装PostSharp。
  2. 该项目具有PostSharp.dll的引用(直接或间接)。
  3. MSBuild属性SkipPostSharp与true不同,编译符号SkipPostSharp未定义。
  4. 第三个条件是通过检查VS项目属性中的选项来禁用PostSharp时会出现错误。

    默认情况下,您可以通过设置SkipPostSharp = True属性来禁用PostSharp。这可以通过在项目的一个父目录中创建名为PostSharp.Custom.targets的文件来实现,其中包含以下内容:

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

    然后,在实际需要PostSharp的每个项目中,您需要定义属性SkipPostSharp = False。您必须使用文本编辑器执行此操作,因为项目属性选项卡仅允许将属性设置为True或取消定义它。