我一直在使用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选项下):
所以我必须安装一个并行的旧版Mono才能获得.NET 3.5支持,或者我只是遇到配置问题?
答案 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框架并将其设置为默认值。我的项目然后编译。