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:
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>
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″ />
E aggiungere l’attributo ExcludeAssets=”All” nel seguente modo:
<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.
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 Download
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:
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 Download