Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 33299|Odpowiedź: 2

[.NET Core] Nowe funkcje .NET Core udostępniają plik wykonywalny w pojedynczym pliku

[Skopiuj link]
Opublikowano 2019-9-28 16:38:47 | | | |
Kilka dni temu Microsoft wydał .NET Core 3.0, a jednym z największych ulepszeń jest wsparcie dla aplikacji desktopowych Windows (tylko Windows). Korzystając z komponentu .NET Core 3.0 SDK Windows Desktop, możesz przenieść aplikacje Windows Forms oraz Windows Presentation Foundation (WPF). Dla jasności, komponenty desktopowe Windows są obsługiwane i dołączone tylko w Windows.

Adres do pobrania SDK:Logowanie do linku jest widoczne.

Linki wprowadzające funkcje .NET Core:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.

Cechy obejmują następujące cechy:

  • Używaj C# do tworzenia bogatych, interaktywnych aplikacji webowych dla klientów.
  • Wykorzystaj gRPC do tworzenia wysokowydajnych usług backendowych.
  • SignalR obsługuje teraz automatyczne ponowne połączenie oraz przepływy klient-serwer.
  • Korzystaj z dokumentacji OpenAPI do generowania silnie napisanego kodu klienta dla Web API.
  • Routing punktów końcowych jest zintegrowany w ramach frameworka.
  • Kestrel ma domyślnie włączone HTTP/2.
  • Zintegrowane webowe API oraz wsparcie dla uwierzytelniania aplikacji jednostronnych.
  • Obsługiwane są certyfikaty i uwierzytelnianie Kerberos.
  • Integruj nowy serializer System.Text.Json.
  • Nowy uniwersalny hosting konfiguruje wspólne zarządzane usługi, takie jak wstrzykiwanie zależności, konfiguracja i logowanie.
  • Nowy szablon Worker Service do budowania usług długoterminowych.
  • Nowe EventCountery są tworzone dla żądań na sekundę, całkowitych, bieżących i nieudanych żądań.
  • Błędy uruchamiania hostowane w IIS są teraz zgłaszane do dziennika zdarzeń Windows.
  • Poproś o integrację pipeline System.IO.Pipelines.
  • Poprawa wydajności w całym stosie technologicznym.

Stwórzmy nowy projekt konsolowy .NET Core 3.0 z wersją VS 2019, jak pokazano na poniższym rysunku:



Korzystając z pakietu Newtonsoft.Json, napisz kilka linii kodu, w następujący sposób:


Klikamy prawym przyciskiem na VS Regenerate, otwieramy katalog kosza projektu i okazuje się, że zostanie wygenerowanych kilka plików, w tym :demo1.exe i Newtonsoft.Json.dll plików.



Publikuj plik wykonywalny z pojedynczego pliku

Metoda 1:

Wykonaj następujące polecenie w katalogu projektu:



Otwieramy folder C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 i okazuje się, że wygenerowanych jest wiele plików dll oraz folder publikujący.

Przejdź do folderu publikuj,Rozmiar demo1.exe wyświetlania wynosi 66M, co jest takim samym rozmiarem jak wszystkie pliki poza folderem, jak pokazano na poniższym rysunku:



Wygenerowany pojedynczy plik wykonywalny faktycznie zawiera środowisko wymagane do wykonania programu i nie wymaga instalacji SDK przez docelowy komputer, a wadą jest to, że rozmiar pliku stanie się bardzo duży.

Metoda 2:

Kliknij prawym przyciskiem zamiast edytować plik projektu i dodać konfigurację węzła PublishSingleFile, kod wygląda następująco:

Następnie kliknij prawym przyciskiem i "Publikuj".


Połączenia montażowe

SDK .NET core 3.0 zawiera narzędzie, które może zmniejszyć rozmiar aplikacji poprzez analizę IL i przycinanie nieużywanych asembli.

Aplikacje samodzielne zawierają wszystko, czego potrzebujesz do uruchamiania kodu bez konieczności instalowania .NET na głównym komputerze. Jednak często aplikacja potrzebuje tylko ułamka frameworka do działania, a inne nieużywane biblioteki można usunąć.

.NET Core teraz zawiera ustawienie, które skanuje IL Twojej aplikacji za pomocą narzędzia IL linker. To narzędzie wykryje, jaki kod jest potrzebny, a następnie wycina nieużywane biblioteki. To narzędzie może znacząco zmniejszyć rozmiar wdrożenia niektórych aplikacji.

Aby włączyć to narzędzie, skorzystaj z <PublishTrimmed> ustawień w swoim projekcie i opublikuj samodzielną aplikację:

.NET Core CLI


Właśnie wygenerowaliśmy plik 66M, a po dodaniu konfiguracji,Stał się 35M, zmniejszając obłożenie do 30M.

Pamiętaj, aby rozważyć aplikacje lub frameworki wykorzystujące refleksje lub powiązane funkcje dynamiczne (w tym ASP.NET Core i WPF).Zazwyczaj uszkadzane podczas cięciaTo uszkodzenie występuje, ponieważ linker nie jest świadomy tego dynamicznego zachowania i nie potrafi określić, które typy ramek są potrzebne do odbicia。 Narzędzie linker IL można skonfigurować tak, aby wykryć tę sytuację.

Najważniejsze, aby nałożyć go po cięciuPrzeprowadz testy


(Koniec)






Poprzedni:Rozwiązaj problem Ajax, który nie może przypisywać wartości zmiennym zewnętrznym
Następny:Język C jest tak potężny, w jakim języku jest napisany?
Opublikowano 2019-9-29 09:30:44 |

Dziękuję za podzielenie się
 Ziemianin| Opublikowano 2019-10-30 09:14:15 |
Obraz ReadyToRun
Można go ulepszyć, kompilując zestaw aplikacji do formatu ReadyToRun (R2R). Czas uruchamiania aplikacji NET Core.

R2R to forma pre-kompilacji (AOT). Pliki binarne R2R poprawiają wydajność uruchamiania, zmniejszając ilość pracy, jaką kompilatory czasu rzeczywistego (JIT) muszą wykonać podczas ładowania aplikacji. Binarny zawiera natywny kod podobny do tego, który generuje JIT. Jednak pliki binarne R2R są większe, ponieważ zawierają kod języka pośredniego (IL) (który w niektórych przypadkach jest nadal wymagany) oraz natywną wersję tego samego kodu. R2R jest dostępny tylko wtedy, gdy publikujesz samodzielną aplikację, która celuje w określone środowisko uruchomieniowe (RID), taką jak Linux x64 lub Windows x64.



Najpierw zostawiamy komentarz, a <PublishTrimmed>potem <PublishReadyToRun>dodajemy:

Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com