将MSbuild文件从4.0降级到3.5

问题描述:

我有一堆使用Visual Studio 2010创建的csproj文件和目标.NET 4.0。将MSbuild文件从4.0降级到3.5

我现在试图用xbuild编译Mono 2.6.7,但2.6.7无法编译verison 4 msbuild项目。 (2.10.1没有问题,这是我们一直在使用的,但我想在2.6.7上做一个实验)。

使用MonoDevelop我已经将运行时版本更改为Mono/.NET 3.5,它在2.6.7下编译得很好。但是更改为使用xbuild失败。

要将MSBuild版本更改为3.5,需要执行哪些步骤?在文件的csproj最上面一行是很明显的:

<Project ToolsVersion="4.0" 

并改变很容易,但我很担心有一些也应该改变不太明显的事情。

任何人都知道从4.0降级到3.5 msbuild文件的权威方法?

使用MonoDevelop,Project->将解决方案导出为VS2008格式。

+0

谢谢迈克尔,一如既往地感谢。 – 2011-04-09 01:31:03

我不知道一个权威指南,但已经做了几次,我可以说我所知道的。

对于一个简单的类库或WinForms应用程序,这是很简单的:需要

  1. 对项目文件的ToolsVersion被设置为3.5,为你指示。
  2. 如果在项目文件中有OldToolsVersion元素(表示它以前已升级),则应删除它。 FileUpgradeFlagsUpgradeBackupLocation元素也是如此。基本上,您不希望OldToolsVersion与当前版本相同。
  3. 如果您使用的是客户端框架配置文件,则在3.5中称该元素为TargetFrameworkSubset。在4.0中,它被称为TargetFrameworkProfile,所以元素应该被重命名。 (不确定此单声道对Mono的适用性)。

您确定要降级MSBuild版本吗?只需编译2.10,switch your environment到2.6.7,并运行测试。