Ответ 1
Для выполнения этой работы нужны аргументы командной строки для msbuild:
msbuild.exe MyProj.proj /p:TargetFrameworkVersion=v2.0;Configuration=Release /tv:3.5
переопределяя значение в файле proj, а также ToolsVersion.
Чтобы узнать, какая версия msbuild используется по умолчанию, запустите командную строку Visual Studio (найдите в меню "Пуск" > Microsoft Visual studio 2010 > Visual Studio Tools) и введите msbuild. Первая строка вывода будет содержать вашу BuidEngineversion:
Microsoft (R) Build Engine версии 4.0.30319.1
Из документа msdn:
MSBuild использует набор задач, целей и инструментов для создания выражение. Как правило, набор инструментов MSBuild включает в себя файл microsoft.common.tasks, файл microsoft.common.targets и компиляторы, такие как csc.exe и vbc.exe. Большинство наборов инструментов можно использовать для компилировать приложения в несколько версий .NET Framework и более чем одна системная платформа
Вы также можете проверить окружение vars для установленной версии фреймворка:
set F
из командной строки Visual Studio дает мне этот результат:
Framework35Version = v3.5
FrameworkDir = C:\Windows\Microsoft.NET\Framework\
FrameworkDIR32 = C:\Windows\Microsoft.NET\Framework\
FrameworkVersion = v4.0.30319
FrameworkVersion32 = v4.0.30319