2011-09-30 119 views
4

我在Linux上安裝了單聲道2.10.4並且一直在嘗試編譯.NET C#4從屬代碼庫。我已經能夠在MonoDevelop中編譯,但需要能夠從命令行/構建工具中完成。我該如何編譯單聲道目標C#/ .net 4

執行:

gmcs -langversion:4 -target:library -out:foo.dll ... <sources> 

產生以下錯誤:

error CS1617: Invalid -langversion option `4'. It must be `ISO-1', `ISO-2', `3' 
or `Default' 

編譯版本gmcs --version

Mono C# compiler version 2.10.4.0

附加說明:

  1. 的Ubuntu 11.04
  2. 安裝在/opt/mono-2.10
  3. 單先安裝路徑
+0

順便說一下,如果你在MonoDevelop的構建輸出窗格看,你已經看到了提示:dmcs被調用,而不是gmcs – sehe

回答

7

我想你想運行dmcs而不是gmcs。從CSharp Compiler page

Starting with Mono version 2.6 a new compiler dmcs is available as a preview of C# 4.0 (a preview since Mono 2.6 will ship before C# 4.0 is finalized).

(這是一個有點過時了,因爲我現在正在運行2.10.5.0,不過沒關係)

編輯:另類,使用mcsas specified here,因爲你正在運行2.10。

它不支持的4特定-langversion,但後來同樣沒有微軟編譯器:

/langversion:<string>  Specify language version mode: ISO-1, ISO-2, 3, 
          or Default 
+0

現貨。 dmcs是4.0定位編譯器 – sehe

+0

do mono支持winforms – Sandy

+0

@rapsalands:我相信大部分。您可以運行兼容性檢查程序來查找缺少的內容。您應該在Mono上徹底測試您的應用程序,因爲可能存在一些細微的差異。 –