如何让Mono使用正确的' ToolsVersion'?

时间:2015-08-30 11:38:47

标签: c# ubuntu mono

XBuild Engine Version 12.0
Mono, Version 3.2.8.0

我试图在XBuild中构建我的C#解决方案。它在Windows中构建得非常好,但在Ubuntu上却没有。我收到以下错误:

warning : Project has unknown ToolsVersion '14.0'. Using the default tools version '4.0' instead.
Target GetFrameworkPaths:
/usr/lib/mono/4.5/Microsoft.Common.targets:  warning : TargetFrameworkVersion 'v4.5.2' not supported by this toolset (ToolsVersion: 4.0).
error CS0246: The type or namespace name 'RedditSharp' could not be found. Are you missing an assembly reference?
error CS0246: The type or namespace name `IReadOnlyCollection' could not be found. Are you missing an assembly reference?

和类似的。我已经将RedditSharp.dll添加到了GAC,所以我不知道它为什么找不到它,我当然不知道它为什么找不到IReadOnlyCollection。我怀疑它是因为我无法使用ToolsVersion 14.0。

有没有人知道在Linux上构建C#的事情?我做错了什么?

3 个答案:

答案 0 :(得分:7)

14表示MSBuild 14,它是Visual Studio 2015的一部分。通常Mono xbuild仅支持最新的Visual Studio版本一段时间后。所以你要么等到它更新,要么如果你愿意的话就破解xbuild。

另一种解决方法是将您的项目转换为MSBuild版本12

答案 1 :(得分:5)

您面临两个不同的问题。

首先是有关ToolsVersion 14.0的警告,其次是错误抱怨4.5.2不受支持。

只需将目标框架更改为4.5,您的项目即可编译。 ToolsVersion警告仍然存在,但编译将成功完成。

我遇到了同样的问题。更改目标框架后,一切正常。

答案 2 :(得分:0)

我安装了Debian 8(Jessie)版本的Raspbian和Mono 5.0。

显然升级MonoDevelop无济于事。所以我去了包含.sln文件的文件夹,找到.csproj文件并修改了Toolsversion(它应该在文件的顶行),从“15.0”到“4.0”。这很有用。