Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 33299|Svar: 2

[.NET Core] De nya .NET Core-funktionerna släpper en enfilskörbar fil

[Kopiera länk]
Publicerad den 28 september 2019 kl. 16:38:47 | | | |
För några dagar sedan släppte Microsoft .NET Core 3.0, och en av de största förbättringarna är stöd för Windows-skrivbordsapplikationer (endast Windows). Genom att använda .NET Core 3.0 SDK Windows Desktop Component kan du porta Windows Forms och Windows Presentation Foundation (WPF)-applikationer. För att vara tydlig stöds och ingår endast Windows-skrivbordskomponenter på Windows.

SDK-nedladdningsadress:Inloggningen med hyperlänken är synlig.

Länkar för att introducera .NET Core-funktioner:

Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.

Funktioner inkluderar följande:

  • Använd C# för att bygga rika, interaktiva klientwebbappar.
  • Använd gRPC för att skapa högpresterande backend-tjänster.
  • SignalR stöder nu automatisk återanslutning och klient-till-server-flöden.
  • Använd OpenAPI-dokumentation för att generera starkt typad klientkod för webb-API:er.
  • Endpoint-routing är integrerad genom ramverket.
  • Kestrel har HTTP/2 aktiverat som standard.
  • Integrerat webb-API och autentisering med en enkel sida för app.
  • Certifikat och Kerberos-autentisering stöds.
  • Integrera den nya System.Text.Json-serien.
  • Det nya universella hostingsystemet sätter upp gemensamma hanterade tjänster såsom beroendeinjektion, konfiguration och loggning.
  • En ny Worker Service-mall för att bygga långsiktiga tjänster.
  • Nya EventCounters skapas för förfrågningar per sekund, totala, nuvarande och misslyckade förfrågningar.
  • Startfel som finns i IIS rapporteras nu till Windows händelselogg.
  • Begär pipeline-integration System.IO.Pipelines.
  • Prestandaförbättringar över hela teknikstacken.

Låt oss skapa ett nytt .NET Core 3.0-konsolprojekt med VS 2019, som visas i figuren nedan:



Med hänvisning till Newtonsoft.Json-paketet, skriv några rader kod, enligt följande:


Vi högerklickar på VS Regenerate, öppnar sedan projektets bin-katalog och ser att flera filer kommer att genereras, inklusive :demo1.exe och Newtonsoft.Json.dll filer.



Publicera en enfilskörbar fil

Metod 1:

Kör följande kommando i projektkatalogen:



Vi öppnar mappen C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64, och vi ser att många dll-filer genereras och att det finns en publiceringsmapp.

Gå till publiceringsmappen,Storleken på visnings-demo1.exe är 66M, vilket är samma storlek som alla filer utanför mappen, som visas i figuren nedan:



Den genererade enda körbara filen innehåller faktiskt den miljö som krävs för programmets körning och kräver inte att måldatorn installerar SDK:n, och nackdelen är att filstorleken blir mycket stor.

Metod 2:

Högerklicka kontra redigera projektfilen och lägga till PublishSingleFile-nodkonfigurationen, koden är följande:

Högerklicka sedan och klicka på knappen "Publicera".


Länkar till samlingen

.NET core 3.0 SDK levereras med ett verktyg som kan minska storleken på din app genom att analysera IL och klippa oanvända assemblies.

Självständiga appar innehåller allt du behöver för att köra kod utan att behöva installera .NET på din huvuddator. Men ofta behöver appen bara en bråkdel av ramverket för att köras, och andra oanvända bibliotek kan tas bort.

.NET Core inkluderar nu en inställning som skannar din apps IL med hjälp av IL-länkverktyget. Detta verktyg kommer att upptäcka vilken kod som krävs och sedan klippa ut oanvända bibliotek. Detta verktyg kan avsevärt minska distributionen av vissa applikationer.

För att aktivera detta verktyg, använd <PublishTrimmed> inställningarna i ditt projekt och publicera en självständig app:

.NET Core CLI


Vi genererade bara en 66M-fil, och efter att ha lagt till konfigurationen,Den blev 35M, vilket minskade beläggningen till 30 M

Se till att överväga applikationer eller ramverk som använder reflektioner eller relaterade dynamiska funktioner (inklusive ASP.NET Core och WPF)Vanligtvis skadad under skärningDenna korruption uppstår eftersom länkaren är omedveten om detta dynamiska beteende och inte kan avgöra vilka ramtyper som krävs för reflektion。 IL-länkverktyget kan konfigureras för att upptäcka denna situation.

Viktigast av allt, se till att applicera den efter att du har skuritGenomför tester


(Slut)






Föregående:Lös att ajax inte kan tilldela värden till externa variabler
Nästa:C-språket är så kraftfullt, vilket språk är det skrivet på?
Publicerad den 2019-9-29 09:30:44 |

Tack för att du delade med dig
 Hyresvärd| Publicerad den 2019-10-30 09:14:15 |
ReadyToRun-bilden
Den kan förbättras genom att kompilera applikationsuppsättningen till ReadyToRun (R2R)-formatet. Uppstartstid för NET Core-applikationen.

R2R är en form av förkompilerad (AOT). R2R-binärer förbättrar startprestandan genom att minska mängden arbete som realtidskompilatorer (JIT) behöver utföra när applikationen laddas. Binära filen innehåller inbyggd kod liknande den som JIT kommer att generera. R2R-binärfiler är dock större eftersom de innehåller mellanliggande språk (IL)-kod (vilket fortfarande krävs i vissa fall) och en inhemsk version av samma kod. R2R är endast tillgängligt när du publicerar en självständig app som riktar sig mot en specifik runtime-miljö (RID), såsom Linux x64 eller Windows x64.



Här lämnar vi först kommentaren och <PublishTrimmed>lägger sedan till<PublishReadyToRun>:

Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com