Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 33299|Ответ: 2

[.NET Core] Новая версия .NET Core выпускает исполняемый файл с одним файлом

[Скопировать ссылку]
Опубликовано 28.09.2019 16:38:47 | | | |
Несколько дней назад Microsoft выпустила .NET Core 3.0, и одним из главных улучшений стала поддержка десктопных приложений для Windows (только для Windows). Используя компонент .NET Core 3.0 SDK Windows Desktop Component, вы можете портировать приложения Windows Forms и Windows Presentation Foundation (WPF). Для ясности: компоненты рабочего стола Windows поддерживаются и включены только в Windows.

Адрес для скачивания SDK:Вход по гиперссылке виден.

Ссылки для внедрения функций .NET Core:

Вход по гиперссылке виден.
Вход по гиперссылке виден.

Особенности включают следующее:

  • Используйте C# для создания насыщенных, интерактивных клиентских веб-приложений.
  • Используйте gRPC для создания высокопроизводительных бэкенд-сервисов.
  • Теперь SignalR поддерживает автоматическое повторное подключение и потоки между клиентом и сервером.
  • Используйте документацию OpenAPI для генерации сильно типизированного клиентского кода для веб-API.
  • Маршрутизация конечных точек интегрирована через фреймворк.
  • В Kestrel по умолчанию включён HTTP/2.
  • Интегрированный веб-API и поддержка аутентификации одностраничных приложений.
  • Поддерживаются сертификаты и аутентификация Kerberos.
  • Интегрируйте новый сериализатор System.Text.Json.
  • Новый универсальный хостинг устанавливает общие управляемые сервисы, такие как инжекция зависимостей, настройка и логирование.
  • Новый шаблон Worker Service для создания долгосрочных сервисов.
  • Создаются новые счетчики событий для запросов в секунду, общего, текущего и неудачного количества запросов.
  • Ошибки запуска, размещённые в IIS, теперь фиксируются в журнале событий Windows.
  • Запросить интеграцию по конвейеру System.IO.Pipelines.
  • Улучшения производительности по всему технологическому стеку.

Давайте создадим новый консольный проект для .NET Core 3.0 с VS 2019, как показано на рисунке ниже:



Ссылаясь на пакет Newtonsoft.Json, напишите несколько строк кода следующим образом:


Мы кликаем правой кнопкой мыши по VS Regenerate, затем открываем папку проекта и обнаруживаем, что будет сгенерировано несколько файлов, включая :demo1.exe и Newtonsoft.Json.dll.



Опубликовать исполняемый файл для одного файла

Метод 1:

Выполните следующую команду в каталоге проекта:



Открываем папку C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 и видим, что сгенерировано много dll-файлов и есть папка публикации.

Перейдите в папку публикации,Размер demo1.exe просмотра — 66M, что соответствует размеру всех файлов вне папки, как показано на рисунке ниже:



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

Метод 2:

Клик правой кнопкой мыши против редактирования файла проекта и добавления конфигурации узла PublishSingleFile, код выглядит следующим образом:

Затем кликните правой кнопкой мыши и нажмите кнопку «Опубликовать».


Ссылки на сборку

SDK .NET core 3.0 поставляется с инструментом, который может уменьшить размер вашего приложения, анализируя IL и обрезая неиспользуемые сборки.

Автономные приложения включают всё необходимое для запуска кода без установки .NET на основной компьютер. Однако часто приложению требуется лишь часть фреймворка для работы, и другие неиспользуемые библиотеки можно удалить.

Теперь в .NET Core есть настройка, которая сканирует IL приложения с помощью инструмента IL linker. Этот инструмент определяет, какой код требуется, и затем вырезает неиспользуемые библиотеки. Этот инструмент может значительно уменьшить размер развертывания некоторых приложений.

Чтобы включить этот инструмент, используйте <PublishTrimmed> настройки в вашем проекте и опубликуйте самостоятельное приложение:

.NET Core CLI


Мы только что сгенерировали файл размером 66M, и после добавления конфигурации,Она достигла 35 метров, сократив заполняемость на 30 метров

Обязательно рассмотрите приложения или фреймворки, использующие отражения или связанные динамические функции (включая ASP.NET Core и WPF).Обычно повреждается во время резкиЭто искажение происходит потому, что связующий не осознаёт этого динамического поведения и не может определить, какие типы кадров необходимы для отражения。 Инструмент IL linker можно настроить для выявления этой ситуации.

Самое главное — обязательно наносите её после резкиПроведите испытания


(Конец)






Предыдущий:Решите проблему, что ajax не может присваивать значения внешним переменным
Следующий:Язык C настолько мощный, на каком языке он написан?
Опубликовано 29.09.2019 09:30:44 |

Спасибо, что поделились
 Хозяин| Опубликовано 2019-10-30 09:14:15 |
Изображение ReadyToRun
Его можно улучшить, скомпилировав набор приложений в формат ReadyToRun (R2R). Время запуска приложения NET Core.

R2R — это форма предварительно скомпилированного (AOT). Бинарные файлы R2R улучшают производительность запуска, уменьшая объём работы, которую компиляторы реального времени (JIT) должны выполнять при загрузке приложения. Бинарный файл содержит родной код, похожий на тот, который генерирует JIT. Однако бинарные файлы R2R крупнее, поскольку содержат код промежуточного языка (IL) (который всё ещё требуется в некоторых случаях) и нативную версию того же кода. R2R доступен только при публикации автономного приложения, ориентированного на определённую среду выполнения (RID), например, Linux x64 или Windows x64.



Здесь мы сначала оставляем комментарий, а <PublishTrimmed>затем <PublishReadyToRun>добавляем:

Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com