.NET Core 3.0 ha introdotto una nuova modalità di deploy che permette di pubblicare la nostra applicazione come singolo eseguibile (conosciuta come single-file executable). Con questa modalità, quando lanciamo la build per il deploy, l'output è un singolo file exe contenente non solo l'applicazione, ma anche le sue dipendenze comprese quelle native. Quando l'eseguibile viene avviato per la prima volta, l'exe e le sue dipendenze vengono scompattate in una directory il cui nome dipende dal nome dell'eseguibile e dalla sua versione. Infine, l'exe viene lanciato e l'applicazione parte.
Da quanto descritto, è evidente che il primo avvio dell'applicazione sarà lento per via dello scompattamento. Tuttavia, dalla seconda volta in poi questo processo non avverrà e quindi l'exe verrà immediatamente lanciato.
Lo svantaggio della lentezza del primo avvio viene comunque superato dalla semplicità di deploy. Infatti, usando questa funzionalità possiamo distribuire la nostra applicazione semplicemente distribuendo un singolo file.
Per eseguire il deploy in questa modalità possiamo utilizzare o la riga di comando dotnet publish con lo switch -r platform, che specifica per quale piattaforma creare l'eseguibile, e lo switch -p che specifica appunto che si vuole utilizzare la modalità single-file.
dotnet publish -r win10-x64 -p:PublishSingleFile=true
In alternativa possiamo impostare queste voci nel file di progetto e pubblicare normalmente da riga di comando o da Visual Studio.
<PropertyGroup> <RuntimeIdentifier>win10-x64</RuntimeIdentifier> <PublishSingleFile>true</PublishSingleFile> </PropertyGroup>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Introduzione ai web component HTML
Selettore CSS :has() e i suoi casi d'uso avanzati
Utilizzare Azure AI Studio per testare i modelli AI
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Utilizzare WhenEach per processare i risultati di una lista di task
Definire stili a livello di libreria in Angular
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Gestire gli accessi con Token su Azure Container Registry
Testare l'invio dei messaggi con Event Hubs Data Explorer
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Rendere i propri workflow e le GitHub Action utilizzate più sicure