Как запустить проект С# под Linux

Знаете ли вы какие-либо способы запуска проекта С# под Linux. Существуют ли для этого рамки или библиотеки?

Ответы

Ответ 1

Вы ищете Mono Project - кросс-платформенную (но в первую очередь ориентированную на Linux) реализацию .NET Framework и CLR, Он способен запускать двоичные файлы, скомпилированные для CLR (MS.NET), или создавать собственные собственные исполняемые файлы Linux.

Проект продлится некоторое время, и его текущая версия (2.4) очень удобна, даже для производственных целей. Подробную информацию об основных функциях и основных этапах текущих и будущих выпусков см. В Moonlight, и прогресс в этом идет хорошо. Насколько мне известно, функциональность WinForms (использующая GTK # в качестве backend), насколько мне известно, является довольно полной.

Реализация языка С# 3.0 эффективно завершена, включая функции С# 3.0, такие как лямбда-выражения, LINQ и автоматические свойства. Я полагаю, что С# компилятор созревает до такой степени, что его эффективность по крайней мере сравнима с эффективностью компилятора MS, хотя еще не сопоставлена ​​с ним в некоторых отношениях. Что довольно круто (и уникально) о компиляторе Mono С#, то есть теперь предлагает службу компилятора - другими словами, истинную динамическую компиляцию из кода (без использования CodeDOM). Это то, что MS, возможно, добавит только в .NET 5.0.

Ответ 2

Как уже говорилось, вы можете запускать приложения.NET на Mono. Если ваши приложения используют Inv Invocation (P/Invoke) для вызова собственного кода, вы можете столкнуться с некоторыми проблемами, если нет моно-реализации собственной библиотеки. Чтобы проверить, работает ли это приложение (или использует API, которые еще не были реализованы в Mono), вы можете использовать анализатор миграции Mono (MoMA).

Ответ 3

Для тех, кто сталкивается с этим вопросом после 2016 года, может использовать .NET Core - платформу разработки общего назначения с открытым исходным кодом, поддерживаемую Microsoft и сообществом.NET на GitHub. Он кросс-платформенный (поддерживающий Windows, macOS и Linux) и может использоваться для создания приложений устройств, облачных приложений и приложений IoT.