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

时间:2011-09-30 21:49:34

标签: .net c#-4.0 compilation mono

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

执行

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. 首先在路径中安装单声道

1 个答案:

答案 0 :(得分:7)

我认为您想要运行dmcs而不是gmcs。来自CSharp Compiler page

  

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

(因为我现在运行的是2.10.5.0,所以有点过时了,但没关系。)

编辑:替代方案,使用mcs as specified here,因为您正在运行2.10。

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

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