我想使用c#
从命令行构建一个msbuild
项目(.csproj),并希望以.Net2.0运行时为目标。
我看到项目xml文件中有2 tags
感兴趣的
<Project ToolsVersion="4.0" ...
和
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
我想知道是否
/ToolsVersion
命令行开关是否实现此目的?我特别希望通过命令行实现此目的,而不是修改项目文件。
目前我正在做这样的事情
msbuild myproj.csproj /p:Configuration=Release
答案 0 :(得分:17)
您需要msbuild的命令行参数才能使其正常工作:
msbuild.exe MyProj.proj /p:TargetFrameworkVersion=v2.0;Configuration=Release /tv:3.5
首先覆盖proj文件中的值以及ToolsVersion。
要找出默认使用的msbuild版本,请启动Visual Studio命令提示符(可在“开始”菜单&gt; Microsoft Visual Studio 2010&gt; Visual Studio工具中找到)并键入msbuild。 输出的第一行将保留您的BuidEngineversion:
Microsoft(R)Build Engine Version 4.0.30319.1
来自msdn doc:
MSBuild使用一组工具,包括任务,目标和工具来构建 应用。通常,MSBuild工具集包括一个 microsoft.common.tasks文件,microsoft.common.targets文件,和 编译器,如csc.exe和vbc.exe。大多数工具集都可以用来 将应用程序编译到多个.NET Framework版本 和多个系统平台
您还可以检查环境变量以获取已安装框架的版本:
Visual Studio命令提示符中的set F
为我提供了以下结果:
Framework35Version = V3.5
FrameworkDir = C:\ WINDOWS \ Microsoft.NET \框架\
FrameworkDIR32 = C:\ WINDOWS \ Microsoft.NET \框架\
FrameworkVersion = v4.0.30319
FrameworkVersion32 = v4.0.30319