Можно ли создать независимое от платформы автономное приложение с одним файлом с помощью .NET 5?

Я только что прочитал статью о автономных однофайловых приложениях в .NET 5. Это своего рода вариант развертывания, который позволяет мне создать один файл, состоящий из:

  • Родная исполняемая программа запуска
  • Среда выполнения .NET
  • .NET библиотеки
  • {your_app} + зависимости

Это однофайловое приложение указывает на конкретную платформу? Думаю, да, потому что он должен содержать версию среды выполнения, специфичную для платформы, и приложение должно быть скомпилировано с использованием архитектуры целевой машины. Я прав? Означает ли это, что я должен выбрать целевую платформу (Windows, Linux, MacOs), архитектуру машины, прежде чем предоставлять свои автономные однофайловые приложения?

1 ответ

Автономный исполняемый файл с одним файлом очень специфичен. Это зависит от вашей операционной системы (Linux, macOS или Windows). Это также зависит от вашей архитектуры (arm64, x64 и т. Д.). Если вы строите для (Windows + x64) не будет работать на (Linux + x64) и он тоже не будет работать на (Linux + Arm 64).

Вы должны точно знать, на какую ОС и архитектуру вы нацеливаетесь, чтобы создать автономный исполняемый файл с одним файлом, который будет там работать.

Вы можете, конечно, скомпилировать одно приложение несколько раз, каждый раз создавая однофайловое приложение, специфичное для комбинации ОС / Архитектура. Затем ваши пользователи могут выбрать один исполняемый файл, соответствующий их ОС / архитектуре. Для этого вам просто нужно настроить свой команда; вам не нужно перепроектировать / перепроектировать ваше приложение (при условии, что оно уже каким-то образом не связано с ОС / архитектурой).

Другие вопросы по тегам