旧版的.Net没有安装最新的Mono?

时间:2015-10-17 10:55:37

标签: c# .net visual-studio mono monodevelop

我一直在使用Visual Studio Community 2015开发.NET 3.5 C#项目,但我一直打算使用Mono和MonoDevelop在Linux上进行大部分开发(Ubuntu Gnome 15.04)。

我正在运行最新的稳定Mono版本(4.0.4)和MonoDevelop(5.9.6),它支持.NET 4.5,可以毫无问题地打开VS创建的解决方案文件。

现在,我已经在Linux上编写C ++应用程序十年了,但C#和.NET对我来说是全新的。所以我假设如果我安装了支持.NET 4.5的Mono版本,我也会得到.NET 3.5,因为更高版本是旧版本的超集 - 很像C ++ 14编译器支持C ++ 03。

然而,似乎情况并非如此,正如MonoDevelop所述(在每个项目的Target Framework选项下):

  • .NET Framework 4.5.1
  • Mono / .NET 4.5
  • Mono / .NET 3.5(未安装)

所以我必须安装一个并行的旧版Mono才能获得.NET 3.5支持,或者我只是遇到配置问题?

3 个答案:

答案 0 :(得分:8)

没有配置问题,Mono在4.x版本中删除了对旧框架的支持。如果你需要编译对抗3.5程序集,那么是的,你需要并行安装。

Dropped Support for Old Frameworks

  

参考装配

     

我们不再为.NET 2.0,.NET 3.5构建引用程序集   或者.NET 4.0 API,我们现在发送参考程序集的二进制文件   (API合同,其中没有任何实际的可执行代码)。

     

Mono现在只会构建.NET 4.5程序集   基于移动设备的个人资料。

     

注意:您仍然可以运行为早期.NET配置文件编译的程序集   在Mono上,没有必要重新编译它们(它们只会运行在   改为使用.NET 4.5程序集。

答案 1 :(得分:3)

我遇到了类似的问题(针对.NET 4.0的项目,但现在只有mono可以使用4.5)。我的解决方法是为4.0创建一个符号链接:

在我的Fedora 32机器上,这是由

完成的
cd /usr/lib/mono
sudo ln -s 4.5 4.0

这应该有效,因为在.NET 4和4.5之间有一个(almost)没有重大变化 - YMMV

答案 2 :(得分:2)

最后,让它发挥作用。我使用Visual Studio for Mac - https://www.visualstudio.com/vs/visual-studio-mac/

在“首选项” - >“项目” - >“。NET运行时”下,您可以更改默认.Net运行时。它默认为Mono 4.8.0。

这位于mac:/Library/Frameworks/Mono.framework/Versions/4.8.0

从这里,您可以下载旧版Mono https://download.mono-project.com/archive/

我从https://download.mono-project.com/archive/3.12.1/macos-10-x86/下载了3.12.1 并将其复制到/Library/Frameworks/Mono.framework/Versions/文件夹中。

在VisualStudio中,您可以添加.net框架并将其设置为默认值。我的项目然后编译。