我该如何编译单声道目标C#/ .net 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

我想你想运行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上彻底测试您的应用程序,因为可能存在一些细微的差异。 –