Могу ли я скомпилировать код .NET C # на моем Mac?

22

Мне нужен способ кросс-компиляции небольшого фрагмента кода .NET C # в dll, который затем запустит клиентскую среду Windows.

Я запускаю OS X 10.9.2 на iMac.

Кто-нибудь знает, какие инструменты позволяют это?

Я бы предпочел не устанавливать Parallels и Windows, если бы смог найти способ кросс-компиляции без необходимости такой тяжелой установки инструментов Microsoft.

Jagra
источник

Ответы:

21

Проверьте Моно Проект. Это может быть то, что вы ищете.

http://www.mono-project.com/Mono:OSX

MonoDevelop - это кроссплатформенная IDE, в первую очередь разработанная для C # и других языков .NET. MonoDevelop позволяет разработчикам быстро создавать настольные и ASP.NET веб-приложения для Linux, Windows и Mac OSX. MonoDevelop позволяет разработчикам легко переносить приложения .NET, созданные с помощью Visual Studio, на Linux и Mac OSX, поддерживая единую базу кода для всех платформ.

level42
источник
monodevelop.com MonoDevelop - это кроссплатформенная IDE, в первую очередь разработанная для C # и других языков .NET. MonoDevelop позволяет разработчикам быстро создавать настольные и ASP.NET веб-приложения для Linux, Windows и Mac OSX. MonoDevelop позволяет разработчикам легко переносить приложения .NET, созданные с помощью Visual Studio, на Linux и Mac OSX, поддерживая единую базу кода для всех платформ. - Если вы не можете правильно скомпилировать свой код с помощью MonoDevelop, у вас может не быть другого выбора, кроме как запускать виртуальную машину.
level42
Спасибо, я смотрел на Mono, но хотя он должен работать, я не нашел четкого «как» установить или использовать его.
Ягра
1
@Jagra Здесь есть несколько обучающих видео: youtube.com/results?search_query=monodevelop+install+mac
level42
1
Просто чтобы сгладить любые сомнения: Да , если вы скомпилируете DLL в Mono, она будет работать в Windows без каких-либо изменений, учитывая, что вы не используете никаких конкретных библиотек Mono , таких как Mono.Addin или Mono.Simd. Это также происходит в обоих направлениях: DLL / EXE, скомпилированные в Visual Studio, будут работать без изменений в Mono, учитывая, что вы не используете какие-либо конкретные библиотеки Microsoft / Windows, такие как WPF, Workflow Foundation, COM + и т. Д.
NothingsImpossible
1
@Jagra: после того, как вы установите Mono (и MonoDevelop, если хотите) с go-mono.com/mono-downloads/download.html , его очень легко использовать. Даже без MonoDevelop, вы должны быть в состоянии собрать наиболее .sln проектов прямо из Visual Studio, используя xbuild.
Jwosty
8

Если у вас есть Mac, вы можете скомпилировать C # следующим образом:

Компиляция: mcs fileName.cs
Выполнить:mono fileName.exe

Если у вас не установлен Mono на вашем Mac, вы можете установить его на Google и установить, и тогда все будет хорошо. Вам не нужна Windows, чтобы сделать это.

даный
источник
5

Вы можете установить его с помощью homebrew :

brew install mono

Тогда вы можете использовать его с:

mcs hello.cs
mono hello.exe
Дориан
источник
1

Могу ли я скомпилировать код .NET C # на моем Mac?

Вы можете скомпилировать код C # да.

Я бы предпочел не устанавливать Parallels и Windows, если бы смог найти способ кросс-компиляции без необходимости такой тяжелой установки инструментов Microsoft.

Mono не имеет 100% совместимости с реализацией .NET.

Общая языковая инфраструктура (CLI) - это структура для выполнения управляемого кода. CLI состоит из нескольких частей, включая систему виртуального исполнения (VES). .NET VES - это общеязыковая среда выполнения. Mono имеет свою собственную отдельную реализацию VES.

Другими словами, по крайней мере не ожидайте запуска кода, который был протестирован только в среде * nix / OSX, для запуска без тестирования в среде Windows .

P.Brian.Mackey
источник