Я хочу создать ASP.NET Core 3.0 Web Api с минимальными требованиями к размеру публикации и потреблению оперативной памяти.Кажется, что загрузка процессора не составляет особой проблемы, а количество вызовов в моем случае использования очень мало.
Для теста я попробовал шаблон ASP.NET Core Пустой ,Затем я применил флаги
<PublishTrimmed>true</PublishTrimmed>
<PublishSingleFile>true</PublishSingleFile>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
, что дает мне исполняемый файл с ~ 46 МБ, и когда я запускаю его из cmd, я нахожу новый процесс, который потребляет ~ 19 МБ.
Мой вопрос:
в ASP.NET 2.X был этот метапакет AspNetCore.App, который включал в себя все, что обычно требуется.Но для моей встроенной системы обычно немного грубовато.Сейчас в 3.0 я не вижу ни метапакетов, перечисленных в .csproj, ни отдельных пакетов.Есть ли еще способ точно контролировать, на какие пакеты ссылаются, а на какие нет?
С учетом опции PublishTrimmed
: имеет ли смысл заботиться о том, на какие пакеты вообще ссылаются, или что-то, что не используется, удаляется?в любом случае?
Обновление
, чтобы сделать его более понятным, встроенная система будет запускать дистрибутив Linux на основе Yocto, некоторые коды на основе C для связи с базовым измерениемаппаратное обеспечение и ASP.NET Web Api для связи с внешним миром, больше ничего!После выпуска LTS-версии ASP.NET Core наша система может быть отправлена клиентам и работать в течение 5-10 лет без каких-либо обновлений (по крайней мере, если нет необходимости в критических исправлениях безопасности).Обычно устройство доступно только в локальной сети.