Может ли приложение С#/.NET быть скомпилировано в собственные двоичные файлы с использованием .NET Native без приложения UWP? Например, консольное приложение 4.5? Я просмотрел более 2 часов видео в .NET Native, а также прочитал документы, но они явно не ответили на этот вопрос.
Можно ли использовать .NET Native без UWP?
Ответ 1
Очевидно, приложения .Net Core могут быть встроены в собственный код. Вот страница, которую я нашел об этом, однако у меня пока нет опыта.
https://opensource.com/article/17/5/cross-platform-console-apps
Ответ 2
Для этого нет идеального решения, но есть несколько альтернатив:
-
CoreRT, который поддерживает полную встроенную компиляцию из управляемых dll файлов в двоичные исполняемые файлы на целевой платформе (OS и CPU Arch), но это только ранний предварительный просмотр с отсутствием многих функций.
-
IL2CPP, который разработан, но используется только Unity.
-
.NET 5.0, которая, как утверждается, поддерживает встроенную компиляцию и публикацию, но еще не выпущена до ноября 2020 года.
-
CrossGen, который является частью CoreCLR и может генерировать файлы .ni.dll, которые содержат предварительно скомпилированный (собственный код на конкретной платформе) код, а не код IL в обычной управляемой dll, что ускоряет загрузку. Но это все еще требует времени выполнения, потому что это в основном все еще управляемый dll с уже выполненной JIT-компиляцией (AOT).
Обратите внимание, что .NET Framework устареет, так как .NET Core станет унифицированным .NET, и вы можете легко узнать из новостей о поддержке встроенной компиляции, если будете продолжать следить за вещами .NET Core.