Веб-API ASP.NET Core 3.0 с минимальными затратами

Я хочу создать веб-API ASP.NET Core 3.0 с минимальными затратами с точки зрения опубликованного размера и потребления оперативной памяти. Потребление ЦП не кажется большой проблемой, а количество вызовов в моем случае использования очень мало.

В качестве теста я попробовал пустой шаблон ASP.NET Core. Затем я применил следующие флаги в своемcsproj файл:

<PublishTrimmed>true</PublishTrimmed>
<PublishSingleFile>true</PublishSingleFile>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>

Это дает мне исполняемый файл размером ~46 МБ, и когда я запускаю его из cmd Я нашел новый процесс, который потребляет ~19 МБ.

Мой вопрос: в ASP.NET 2.X был этот метапакет AspNetCore.Appэто включало все, что обычно нужно. Но для моей встроенной системы это обычно немного грубо. Теперь, в версии 3.0, я не вижу ни одного метапакета, указанного в.csprojни каких-либо индивидуальных пакетов. Есть ли еще способ точно контролировать , на какие пакеты ссылаются, а на какие нет?

Учитывая PublishTrimmedoption: Имеет ли смысл заботиться о том, на какие пакеты вообще ссылаются? Или все-таки убирают все, что не используется?

Обновить

Чтобы было понятнее, встроенная система будет запускать дистрибутив Linux на основе Yocto, некоторые коды на основе C для связи с базовым измерительным оборудованием и веб-API ASP.NET для связи с внешним миром, ничего больше! После выпуска LTS-версии ASP.NET Core 3.1 наша система может быть отправлена ​​клиентам и проработает 5-10 лет без каких-либо обновлений - по крайней мере, при условии, что нет необходимости в критических исправлениях безопасности. Обычно устройство доступно только в локальной сети.

0 ответов