как мне скомпилировать с помощью mono targeting C # / .net 4

#.net #c#-4.0 #compilation #mono

#.net #c #-4.0 #Сборник #mono

Вопрос:

У меня установлена mono 2.10.4 в Linux, и я пытаюсь скомпилировать зависимую от .NET C # 4 кодовую базу.NET. Я смог скомпилировать в 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. сначала установите mono в path

Комментарии:

1. кстати, если вы посмотрите на панель вывода сборки в Monodevelop, вы бы увидели подсказку: вместо gmcs вызывается dmcs

Ответ №1:

Я думаю, вы хотите запустить dmcs вместо gmcs . Со страницы компилятора CSharp:

Начиная с Mono версии 2.6, новый dmcs компилятора доступен в качестве предварительного просмотра C # 4.0 (предварительный просмотр, поскольку Mono 2.6 будет поставляться до завершения C # 4.0).

(Это немного устарело, поскольку сейчас я использую 2.10.5.0, но неважно.)

РЕДАКТИРОВАТЬ: альтернативный вариант, используйте, mcs как указано здесь, поскольку вы используете 2.10.

Он не поддерживает определенное -langversion из 4, но и компилятор Microsoft этого не делает:

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

Комментарии:

1. spot on. dmcs — это компилятор, ориентированный на 4.0

2. @rapsalands: Я полагаю, большую часть. Существует проверка совместимости, которую вы можете запустить, чтобы найти то, чего не хватает. Конечно, вы должны тщательно протестировать свое приложение на Mono, поскольку могут быть некоторые незначительные различия.

3. В настоящее время можно просто использовать mcs, поскольку компилятор использует System. Отражения больше нет. Подробности здесь: mono-project.com /…