Say you want to modify each project reference once you know what platforms it can build as, the only place to do it (before PlatformNegotiation kicks in) is...
BeforeTargets=_GetProjectReferencePlatformProperties
AfterTargets=_GetProjectReferenceTargetFrameworkProperties
_GetProjectReferenceTargetFrameworkProperties
is the target that calls MSBuild
on a project reference to gather its information (and see what it would build as). Only AFTER this target you can mess with ProjectReferences while understanding what they can build as.
If you target runs between the two above, you should have an _MSBuildProjectReferenceExistent
item you can mess around with.