Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 33299|Risposta: 2

[.NET Core] Le nuove funzionalità di .NET Core rilasciano un eseguibile a singolo file

[Copiato link]
Pubblicato il 28-09-2019 16:38:47 | | | |
Qualche giorno fa, Microsoft ha rilasciato .NET Core 3.0, e uno dei miglioramenti più grandi è il supporto per applicazioni desktop Windows (solo Windows). Utilizzando il .NET Core 3.0 SDK Windows Desktop Component, puoi portare applicazioni Windows Forms e Windows Presentation Foundation (WPF). Per essere chiari, i componenti desktop di Windows sono supportati e inclusi solo su Windows.

Indirizzo di download SDK:Il login del link ipertestuale è visibile.

Link per introdurre le funzionalità di .NET Core:

Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.

Le caratteristiche includono le seguenti:

  • Usa C# per costruire applicazioni web client ricche e interattive.
  • Usa gRPC per creare servizi backend ad alte prestazioni.
  • SignalR ora supporta la riconnessione automatica e i flussi client-server.
  • Usa la documentazione OpenAPI per generare codice client fortemente tipizzato per le Web API.
  • L'instradamento degli endpoint è integrato attraverso il framework.
  • Kestrel ha HTTP/2 abilitato di default.
  • Supporto integrato per API web e autenticazione di app a pagina singola.
  • Sono supportati certificati e autenticazione Kerberos.
  • Integra il nuovo serializer System.Text.Json.
  • Il nuovo hosting universale imposta servizi gestiti comuni come l'iniezione di dipendenze, la configurazione e la log.
  • Un nuovo modello di Servizio Lavoratori per costruire servizi a lungo termine.
  • Nuovi EventCounter vengono creati per richieste per secondo, totali, attuali e richieste fallite.
  • Gli errori di avvio ospitati in IIS vengono ora segnalati al registro eventi di Windows.
  • Richiedi integrazione pipeline System.IO.Pipelines.
  • Miglioramenti delle prestazioni su tutto lo stack tecnologico.

Creiamo un nuovo progetto console .NET Core 3.0 con VS 2019, come mostrato nella figura qui sotto:



Facendo riferimento al pacchetto Newtonsoft.Json, scrivi alcune righe di codice, come segue:


Facciamo clic destro su VS Regenerate, poi apriamo la cartella bin del progetto e scopriamo che verranno generati diversi file, inclusi :demo1.exe e Newtonsoft.Json.dll.



Pubblica un eseguibile a singolo file

Metodo 1:

Esegui il seguente comando nella directory del progetto:



Apriamo la cartella C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 e vedremo che molti file dll sono generati e c'è una cartella di pubblicazione.

Vai nella cartella di pubblicazione,La dimensione della demo1.exe di visualizzazione è 66M, che corrisponde alla dimensione di tutti i file esterni alla cartella, come mostrato nella figura sottostante:



Il singolo file eseguibile generato contiene in realtà l'ambiente necessario per l'esecuzione del programma e non richiede che il computer di destinazione installi l'SDK, e lo svantaggio è che la dimensione del file diventerà molto grande.

Metodo 2:

Clicca con il tasto destro rispetto a modificare il file di progetto e aggiungere la configurazione del nodo PublishSingleFile, il codice è il seguente:

Poi clicca con il tasto destro e clicca sul pulsante "Pubblica".


Collegamenti assembly

L'SDK .NET core 3.0 include uno strumento che può ridurre le dimensioni della tua app analizzando IL e ritagliando assembly inutilizzati.

Le app autonome includono tutto ciò che serve per eseguire codice senza dover installare .NET sul computer principale. Tuttavia, spesso l'app ha bisogno solo di una frazione del framework per essere eseguita, e altre librerie inutilizzate possono essere rimaste.

.NET Core ora include un'impostazione che scansiona l'IL della tua app usando lo strumento IL linker. Questo strumento rileverà quale codice è necessario e poi ritaglia librerie inutilizzate. Questo strumento può ridurre significativamente la dimensione di distribuzione di alcune applicazioni.

Per abilitare questo strumento, usa le <PublishTrimmed> impostazioni del tuo progetto e pubblica un'app autonoma:

.NET Core CLI


Abbiamo appena generato un file 66M e, dopo aver aggiunto la configurazione,È diventato 35M, riducendo l'occupazione di 30M

Assicurati di considerare applicazioni o framework che utilizzano riflessioni o funzionalità dinamiche correlate (inclusi ASP.NET Core e WPF)Di solito danneggiata durante il taglioQuesta corruzione si verifica perché il linker non è consapevole di questo comportamento dinamico e non può determinare quali tipi di frame siano necessari per la riflessione。 Lo strumento IL linker può essere configurato per individuare questa situazione.

La cosa più importante è assicurarsi di applicarla dopo il taglioConduzione dei test


(Fine)






Precedente:Risolvere ajax che non è possibile assegnare valori a variabili esterne
Prossimo:La lingua C è così potente, in che lingua è scritta?
Pubblicato il 29-09-2019 09:30:44 |

Grazie per aver condiviso
 Padrone di casa| Pubblicato il 30-10-2019 09:14:15 |
Immagine ReadyToRun
Può essere migliorato compilando l'insieme di applicazioni nel formato ReadyToRun (R2R). È ora di avvio dell'applicazione NET Core.

R2R è una forma di precompilato (AOT). I binari R2R migliorano le prestazioni di avvio riducendo la quantità di lavoro che i compilatori in tempo reale (JIT) devono svolgere quando l'applicazione si carica. Il binario contiene codice nativo simile a quello che JIT genera. Tuttavia, i binari R2R sono più grandi perché contengono codice di linguaggio intermedio (IL) (che in alcuni casi è ancora necessario) e una versione nativa dello stesso codice. R2R è disponibile solo quando si pubblica un'app autonoma che mira a un ambiente di esecuzione specifico (RID), come Linux x64 o Windows x64.



Qui lasciamo prima il commento e <PublishTrimmed>poi <PublishReadyToRun>aggiungiamo:

Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com