Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 33299|Відповідь: 2

[.NET Core] Новий .NET Core випускає однофайловий виконуваний файл

[Копіювати посилання]
Опубліковано 2019-9-28 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, відкриваємо папку bin проєкту і бачимо, що буде згенеровано кілька файлів, включно з файлами :demo1.exe та Newtonsoft.Json.dll.



Опублікувати однофайлний виконуваний файл

Метод 1:

Виконайте наступну команду в каталозі проєкту:



Ми відкриваємо папку C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 і бачимо, що згенеровано багато dll-файлів і є папка Pub.

Перейдіть у папку публікації,Розмір 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