TL; DR: каковы параметры в настоящее время для запуска решения VS2015 в Linux?
У меня есть приложение .NET, которое отлично работает в Windows и получает запросы на его перенос в Linux. Я очень старался понять, что это значит сегодня в 2015 году, но я действительно путаюсь со всеми старыми сообщениями, указывающими на Mono, и новыми сообщениями, в которых говорится о vNext (и все еще упоминается Mono). Кроме того, у меня неплохой опыт работы с .NET, но я не знаю много о Linux в целом...
Я следил за недавним уроком и смог скомпилировать и запустить консольное приложение Hello World в Linux. Это потребовало некоторой установки вещей, которые я не знаю, включая Mono, а затем запускал некоторые команды "k" (kpm restore, kpm build, k run). Однако теперь я не знаю, как перейти к моему реальному сценарию.
У меня есть решение VS2015, у которого много проектов, но стоит всего 4: - Общие вопросы - Сервис - ServiceWindows/ServiceConsole
Весь код находится в проекте ServiceCore (библиотека классов), который сам имеет ссылку на CommonStuff (другая библиотека классов). ServiceWindows - это проект службы Windows, который просто вызывает основную функцию ServiceCore, а ServiceConsole делает то же самое, что и в консольном приложении (для причин отладки, поскольку отладка проекта службы Windows из Visual Studio невозможна).
Оба CommonStuff и ServiceCore включают в себя множество .NET-библиотек, а также некоторые сторонние DLL файлы. Однако никакого кода для Windows не существует, нет пинвок или фанки.
Если мы рассмотрим ServiceConsole, чтобы стать приложением, которое я хочу запустить на Linux, что мне нужно сделать, чтобы это произошло? Компиляция Hello World была одной вещью, но теперь, со всеми thoese ссылками... Я не знаю, с чего начать. Кроме того, я даже не могу скомпилировать код в Linux (проприетарный код), поэтому мне нужен код для компиляции в Windows, а скомпилированная dll/exe для запуска непосредственно в Linux - это то, что возможно? Я видел несколько сообщений, в которых говорилось, что Mono может запускать скомпилированные приложения, но каждый Mono turorial, который я видел, начинается с компиляции. Также я не уверен, что это vNext. Я читал материал о возможности запуска кода в Linux, если он нацелен на .net 6... но я понятия не имею, как и что это значит.
Я был бы очень признателен, если бы кто-нибудь мог потратить некоторое время, чтобы объяснить в некоторых деталях, какие варианты сейчас и если они реалистичны для профессионального приложения или если это только хорошо для Hello Worlds еще.
Спасибо
EDIT: ОК, похоже, я могу скомпилировать свой код в VS и каким-то образом запустить его в Linux с помощью Mono - как?