Ответ 1
Лучше всего было бы создать два отдельных файла csproj, один из которых рассчитан на 3,5 и один, предназначенный для 4.0, и включить их в одно и то же решение. Вы можете добавить все файлы из одного проекта в другой проект. Если вы связать файл, вместо обычного добавления, то любые обновления, которые вы делаете в файле, будут применены к обоим проектам.
Скорее всего, вы столкнетесь с проблемами, если попытаетесь создать проекты в одном месте, из-за того, как Visual Studio поддерживает временные файлы сборки. Поэтому вам нужно будет хранить их в отдельных папках.
Наконец, если вы создаете исполняемый файл, который нацелен на 3.5, его можно запустить как-на .NET 4. Так что в общем случае вам не нужно создавать две версии EXE.