我可以指定 SkipPostSharp 常量来确保项目从 PS 进程的项目列表中排除。但我想反过来做。我希望 PS 假设它不应该处理我没有明确告诉它的任何内容。
这可以实现吗?
最佳答案
项目被PostSharp自动处理需要满足三个条件:
- 已使用安装程序安装 PostSharp。
- 该项目引用(直接或间接)PostSharp.dll。
- MSBuild 属性 SkipPostSharp 与 true 不同,并且编译符号 SkipPostSharp 未定义。
第三个条件是当您通过检查 VS 项目属性中的选项禁用 PostSharp 时变为 false。
您可以通过默认设置 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 或取消定义它。
关于postsharp - 是否可以选择 PostSharp 处理哪些项目而不是告诉它排除哪些项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9814609/