2015-10-17 128 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