2013-04-24 87 views
2

我想使用F#3.0命令行編譯器編譯可執行文件,然後在Mono下運行它。在Mono下運行由F#3生成的可執行文件

代碼開始執行,但Mono幾乎立即死亡抱怨它無法加載System.Core。谷歌搜索這表明我應該瞄準.net 3.5,而不是版本4.進一步的谷歌搜索表明,F#編譯器曾經採取選項 - CLI版本,但它似乎不再接受。

我確信有一種方法,看起來好像我使用MSVC那裏會有某處我可以點擊來設置所需的CLR版本。

我該怎麼做?非常感謝。

編輯:

我試圖在MSVC的GUI開發了一個簡單的項目目標.NET 3.5。然後,可執行文件要求使用FSharp.Core 2.0.0,並且比以前進一步。 F#3編譯器似乎帶有一個.net 2.0核心庫,所以我認爲它應該能夠生成與過時版本的框架兼容的代碼。這個問題留下的問題是「如果GUI能夠做到這一點,我該如何從命令行做同樣的事情」?

+1

挖掘源代碼揭示了這個錯誤信息 - 它有幫助嗎?「命令行選項'--cliroot'已被棄用,請使用對mscorlib.dll的特定副本的明確引用。」' – 2013-04-24 23:26:31

回答

2

如果您使用F#3.0,沒有理由不默認使用.NET 4.0(當然,除非您需要與現有的.NET 2.0或3.5程序集進行互操作)。

您正在運行哪個版本的Mono? F#3.0需要Mono 2.10或更高版本,但我強烈建議您使用Mono 3.0或更高版本。

+0

我是使用2.10.8.1(在Ubuntu上默認)。我得到的例外是「無法加載文件或程序集」System.Core,版本4.0.0.0,文化= .....「 – 2013-04-24 17:21:22

+0

@JoeHuha如果你在Ubuntu 12.04或更新版本,只需卸載單聲道,然後克隆/從[GitHub上的源代碼](https://github.com/mono/mono)構建/安裝它;然後對F#3.0執行相同的操作。 – 2013-04-24 17:40:09

+0

我可以,但是我的目標確實是使其便於攜帶,因此它可以即裝即用,其他人可以輕鬆使用它。 – 2013-04-24 17:49:58