Предисловие: VS2022 необходимо обновить до версии 17.8.0 или выше, а среда разработки должна иметь .NET 8 SDK, который можно загрузить с официального сайта Microsoft.
Для разницы в эффекте я сначала создал проект webapi в среде .net 6.
Затем создайте проект библиотеки классов и выведите сообщение. На этот проект библиотеки классов будут ссылаться проект .net 6 и последующий проект .net 8.
Создайте ссылку на проект библиотеки классов в проекте .net 6 и вызовите выходные данные.
После выпуска программы .net 6 она будет работать в корневом каталоге. После публикации вы увидите, что в целевой папке есть много ссылочных DLL-файлов. Инструменты декомпиляции в основном декомпилируют на основе файлов dll.
Затем мы создаем программу aot .net 8 webapi, не забудьте иметь тег AOT.
В этом проекте есть только один вариант — .NET 8, а это значит, что на данный момент только .net 8 поддерживает AOT.
В созданной таким образом программе имеется дополнительный файл с суффиксом http, и его функции вы можете изучить самостоятельно.
В программе .net 8 также упоминается тот же проект библиотеки классов, и вывод осуществляется, как указано выше.
Скомпилируйте и опубликуйте программу. При публикации вам необходимо выбрать целевую платформу, например Win-x64, в противном случае может быть сообщено об ошибке. В настоящее время AOT поддерживает только архитектуру x64.
Каталог после выпуска относительно чистый. Здесь нет файла DLL, есть только exe-файл, что позволяет избежать использования DLL-файлов для декомпиляции. И двойной щелчок исполняемой программы может работать нормально.
Для приведенной выше программы .net 6 для лучшего сравнения я также перешел на ту же конфигурационную среду win-x64 для публикации, а затем повторно опубликовал ее. Я все еще вижу, что после публикации осталось много файлов:
Наконец, еще одной особенностью AOT является то, что он может работать без использования среды .net framework. Поэтому я перенес его на другой компьютер. На другом компьютере не была установлена среда .net 8. Двойной щелчок по исполняемому файлу может работать без проблем, не запрашивая отсутствующие зависимости .net:
Благодаря артефакту AOT вам больше не придется беспокоиться о том, что вас может легко декомпилировать и вызвать утечку кода.