<ProductVersion>
предоставит вам версию MSBuild, в которой выполняется процесс сборки.
Обратите внимание, что в VS 2010 процесс сборки может быть нацелен либо на .Net 4.0, либо на 3.5. Вам нужно тщательно продумать, зависит ли ваша условная компиляция от самой версии msbuild или от целевой структуры сборки и инструментов, которые использует сборка. , Если ваше условие основано на целевой структуре, используйте <TargetFrameworkVersion>
.
Конечно, если ваша сборка также может быть запущена под VS 2008, вам нужно поддерживать правильный запасной вариант, если отсутствует <TargetFrameworkVersion>
.