What's new

Welcome to xuiaf | Welcome My Forum

Join us now to get access to all our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, and so, so much more. It's also quick and totally free, so what are you waiting for?

ASP.NET Core Publish – Eliminare le cartelle relative alle lingue non utilizzate

Hoca

Administrator
Staff member
Joined
Mar 22, 2024
Messages
167
Reaction score
0
Points
16
In questo submit affronteremo un problema che riguarda la maggior parte dei progetti ASP.NET Core durante la fase di pubblicazione.


Come molti sviluppatori già sanno, quando andiamo a pubblicare una applicazione ASP.NET Core (tramite immediate dei comandi , utilizzando il comando dotnet public, o tramite Visible Studio), il framework genera una serie di meeting satellite tv for pc per il supporto alla localizzazione, raggruppandoli in una serie di cartelle relative alle varie lingue disponibili.


In conseguenza di questo automatismo, al termine del processo di pubblicazione ci si ritrova spesso con il seguente risultato:
ASP.NET Core Publish - Eliminare le cartelle relative alle lingue non utilizzate



Sebbene queste cartelle siano completamente innocue, se non supportiamo queste lingue potremmo ragionevolmente voler impedire che vengano generate.


Per fare ciò, è sufficiente aprire il file di progetto (quello che termina con il prefisso .csproj) e aggiungere l’elemento <SatelliteResourceLanguages> al primo PropertyGroup (quello contenente l’elemento TargetFramework) nel seguente modo:


<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Platforms>AnyCPU;x64</Platforms>
<SatelliteResourceLanguages>en;it</SatelliteResourceLanguages>
</PropertyGroup>




<PropertyGroup>

<TargetFramework>net8.0</TargetFramework>

<Platforms>AnyCPU;x64</Platforms>

<SatelliteResourceLanguages>en;it</SatelliteResourceLanguages>

</PropertyGroup>

L’elemento <SatelliteResourceLanguages> consente di indicare le lingue che esplicitamente supportate dalla nostra applicazione: nello state of affairs sopra, advert esempio, siccome intendiamo supportare solo le lingue inglese (en) e italiano (it), abbiamo aggiunto soltanto queste due.

Per maggiori informazioni sull’elemento SatelliteResourceLanguages, consulta la guida ufficiale.

Se questa impostazione non è sufficiente per risolvere il problema, potrebbe essere necessario apportare un’altra modifica al medesimo file di progetto.


Nello specifico, dobbiamo individuare il seguente elemento:



<PackageReference Embrace=”Microsoft.VisualStudio.Net.CodeGeneration.Design” Model=”8.0.0″ />



<PackageReference Embrace=“Microsoft.VisualStudio.Net.CodeGeneration.Design” Model=“8.0.0” />

E aggiungere l’attributo ExcludeAssets=”All” nel seguente modo:


<PackageReference Embrace=”Microsoft.VisualStudio.Net.CodeGeneration.Design” Model=”8.0.0″ ExcludeAssets=”All” />



<PackageReference Embrace=“Microsoft.VisualStudio.Net.CodeGeneration.Design” Model=“8.0.0” ExcludeAssets=“All” />

Questa impostazione, unitamente alla precedente, dovrebbe impedire la generazione di quelle cartelle una volta per tutte.

IMPORTANTE: gli esempi di cui sopra sono presi da una app che utilizza .NET 8 (v8.0.0): se la app che vogliamo “fixare” utilizza una versione diversa del framework, gli elementi menzionati avranno riferimenti diversi.


Conclusioni​


Questo è tutto, almeno per il momento: ci auguriamo che questa piccola guida possa aiutare altri sviluppatori ASP.NET Core a sbarazzarsi di quelle inutili cartelle di localizzazione durante la pubblicazione delle loro app sul Net.

Print Friendly, PDF & EmailPrint Friendly & PDF Download
 
Top Bottom