您需要 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 工具中)并键入 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 和多个系统平台
您还可以检查 Environment 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
工具集说明
ToolSetVersion