This is interesting. There are two ways of doing it. Either the net45 project declares both the NET40 and NET45 constants, i.e. net45 is a superset of net40, or we do it like you'e done here.

The disadvantage of the superset approach is that we can't do things like 'do this for net40 and this for net45'. I guess what we really want is `#if >= NET40` but obviously that doesn't exist.

I think the approach you've taken is fine for now, hopefully the number of target frameworks isn't going to explode :wink:.