There are three conditions for a project to be automatically processed by PostSharp:
- PostSharp has been installed using the setup program.
- The project has a reference (direct or indirect) to PostSharp.dll.
- The MSBuild property SkipPostSharp is different than true and the compilation symbol SkipPostSharp is undefined.
The third condition is what becomes false when you disable PostSharp by checking the option in VS project properties.
You could disable PostSharp by default by setting the SkipPostSharp=True property by default. This can be achieved by creating a file named PostSharp.Custom.targets in one of the parent directories of your projects, with the following content:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SkipPostSharp Condition="'$(SkipPostSharp)'==''">True</SkipPostSharp>
</PropertyGroup>
</Project>
Then, in every project where PostSharp is actually needed, you would need to define the property SkipPostSharp=False. You will have to do that using a text editor, because the project property tab only allows to set the property to True or to undefine it.