如何使用单声道目标C#/ .net 4进行编译

Jon*_*ore 4 .net mono compilation c#-4.0

我在linux上安装了单声道2.10.4,并且一直在尝试编译依赖于.NET C#4的代码库.我已经能够在MonoDevelop中编译,但需要能够从命令行/构建工具进行编译.

执行:

gmcs -langversion:4 -target:library -out:foo.dll ... <sources>
Run Code Online (Sandbox Code Playgroud)

产生以下错误:

error CS1617: Invalid -langversion option `4'. It must be `ISO-1', `ISO-2', `3' 
or `Default'
Run Code Online (Sandbox Code Playgroud)

编译器版本gmcs --version:

Mono C# compiler version 2.10.4.0

附加说明:

  1. ubuntu 11.04
  2. 安装在/opt/mono-2.10中
  3. 单声道安装在路径中

Jon*_*eet 7

我想你想跑dmcs而不是gmcs.从CSharp编译器页面:

从Mono 2.6版开始,新的编译器dmcs可用作C#4.0的预览版(预览版,因为Mono 2.6将在C#4.0完成之前发布).

(这有点过时,因为我现在运行2.10.5.0,但没关系.)

编辑:替代,使用mcs 此处指定,因为您正在运行2.10.

它不支持-langversion4 的特定,但是Microsoft编译器也不支持:

/langversion:<string>      Specify language version mode: ISO-1, ISO-2, 3,
                           or Default
Run Code Online (Sandbox Code Playgroud)