NetCore: Effettuare il publish del solo eseguibile

Avete mai provato ad effettuare il publish di una Applicazione o ConsoleApp netcore almeno una volta? Avete visto quanti file contiene la cartella Release alla fine del build? Pensate a doverli passare ogni volta tutti ad un cliente e vederlo nel panico non sapendo quale avviare. La prima volta che mi e’ capitata questa situazione l’ho risolta sfruttando ILMerge ed e’ sempre andata bene, ma con NET Core la situazione e’ ben diversa ed ora vediamo come risolverla.

dotnet publish PublishSingleFile

Se il vostro pensiero e’ del tipo “Speriamo sia semplice, non l’ho mai fatto” sappiate che e’ ancora piu’ semplice di quanto possiate immaginare. Vi bastera’ (forse) utilizzare dotnet publish da riga di comando nel seguente modo.

1
dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true 

Ed a quel punto avrete passato la palla dotnet publish indicando la modalita’ PublishSingleFile e nella vostra cartella avrete solamente un unico file.

Tenete conto che col comando appena illustrato una console “Hello World!” genera un file da 80 mega circa. E’ uno scherzo? Purtroppo no, ma …

dotnet publish PublishTrimmed

Se al comando precedente aggiungerete /p:PublishTrimmed=true la dimensione del file calera’ in maniera drastica.

1
dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true 

Nei link a seguire vi indichero’ quello relativo al PublishTrimmed direttamente dalla documentazione ufficiale Microsoft.