2015-10-17 98 views
6

我一直在使用Visual Studio Community 2015开发.NET 3.5 C#项目,但我一直打算使用Mono和MonoDevelop来完成Linux(Ubuntu GNOME 15.04)上的大部分开发。旧版本的.Net没有安装最新的Mono?

我正在运行最新稳定的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的状态(每个项目的目标框架选项下):

  • 的.NET Framework 4.5.1
  • 单声道/ .NET 4.5
  • 单声道/ .NET 3.5(未安装)

所以我必须以安装Mono的并行旧版本来获取.NET 3.5的支持,还是我只是患了配置问题?

回答

5

没有配置问题,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程序集以及基于移动设备的配置文件 。

注意:您仍然可以在Mono上运行针对早期.NET配置文件 编译的程序集,因此不需要重新编译它们(它们只会运行在.NET组件上)。

+0

呃,多么痛苦。尽管谢谢你的回答。 – cmannett85

+0

只是一个小调,应该是单声道社区:) Xamarin!=单声道。 –

+2

我在这里写了一个教程:http://blog.rubenwardy.com/2016/07/20/rimworld-install-monodevelop-with-dot-net-3.5/ 我发现很难解决如何安装旧版Mono和MonoDevelop支持3.5,所以我发了一篇博文。希望这可以帮助某人 – rubenwardy

3

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

在我的Fedora 32的机器这是由

cd /usr/lib/mono 
sudo ln -s 4.5 4.0 

做的这应该工作,因为有一个(almost).NET 4和4.5之间没有重大更改 - YMMV

2

最后,得到它的工作。我正在使用Visual Studio for Mac - https://www.visualstudio.com/vs/visual-studio-mac/

在Preferences-> Projects->下。网络运行时您可以更改默认.Net运行时。它默认为Mono 4.8.0。

这是位于这里在Mac上:/Library/Frameworks/Mono.framework/Versions/4.8.0

从这里你可以下载旧版本的单https://download.mono-project.com/archive/

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

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

+1

您不必将其设置为默认值。你可以选择Project-> Active Runtime - > Mono 3.12然后编译 – PandaWood

+0

谢谢,很高兴知道。 – Emile