c# - 将 MSbuild 文件从 4.0 降级到 3.5

标签 c# msbuild mono monodevelop xbuild

我有一堆使用 Visual Studio 2010 创建并针对 .NET 4.0 的 csproj 文件。

我现在尝试使用 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 文件的明确方法吗?

最佳答案

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

对于一个简单的类库或 WinForms 应用程序,它非常简单:

  1. 如您所述,项目文件上的 ToolsVersion 需要设置为 3.5。
  2. 如果项目文件中存在 OldToolsVersion 元素(意味着它之前已升级),则应将其删除。 FileUpgradeFlagsUpgradeBackupLocation 元素也是如此。基本上,您不希望 OldToolsVersion 与当前版本相同。
  3. 如果您使用的是客户端框架配置文件,则在 3.5 中该元素称为 TargetFrameworkSubset。在 4.0 中,它称为 TargetFrameworkProfile,因此应重命名该元素。 (不确定这是否适用于 Mono)。

关于c# - 将 MSbuild 文件从 4.0 降级到 3.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5590640/

相关文章:

c# - ASP.NET MVC : does AntiForgeryToken work in mono?

.net - 是否有可用于 Mono 的增量 GC,我可以使用它或获取其源代码?

c# - .net/native 编码的 out string 和 StringBuilder 之间有什么区别?

c# - Web API 2 返回错误

c# - C# 中对象的名义存储分配

msbuild - 如何使用 msbuild 下载文件?

msbuild - 在 AppVeyor 中使用 MSBuild 14.0/C# 6.0 构建

msbuild - USQL msbuild - 复合构建输出

c# - 直接从 Windows Phone 7.5 获取 Facebook 信息

c# - 在 Mono LdapException 上运行 Exchange EWS