Mantendo projetos sincronizados em várias versões do .NET

Eu preciso criar algumas bibliotecas principais dentro do meu aplicativo, que estarão disponíveis no .NET 3.5 e no .NET 4.0. Estou feliz de criar vários projetos, criando as definições necessárias e usando#ifdef para controlar qual código faz em qual montagem de saída.

No entanto, o que eu gostaria de saber é se existe uma maneira de manter esses projetos em sincronia? Quando estou desenvolvendo em XNA, tenho uma compilação do Windows e uma compilação do Windows Phone - e o XNA injeta uma propriedade no arquivo de projeto chamadoXnaCrossPlatformGroupID. O que faz com isso é permitir que o Visual Studio garanta automaticamente que, quando um arquivo é adicionado a um projeto, ele seja adicionado ao projeto correspondente. Então, por exemplo, se eu adicionar um arquivo chamadoFoo.cs Para a cópia do Windows do meu projeto, esse mesmo arquivo é adicionado à cópia do projeto do Windows Phone.

Existe alguma maneira de replicar esse tipo de comportamento para um conjunto normal de projetos no Visual Studio? Eu preferiria não usar configurações de compilação, já que gostaria de poder compilar todas as plataformas direcionadas em uma única etapa, sem recorrer a ferramentas fora do IDE (algo como o TeamCity, por exemplo). Ou há outro método que permite que um projeto seja construído contra vários destinos sem salpicar a solução com 20 configurações diferentes?

questionAnswers(2)

yourAnswerToTheQuestion