Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.Net Core exclude published language directories other than english

I publish my ASP.Net Core 3.1 Server like this:

dotnet publish --configuration Release --runtime win7-x64 -p:PublishTrimmed=true --output c:\MyServer

What I get in c:\MyServer is a lot of international language directories: cs, de, es, fr, zh-hans etc

How can I publish with only the English version ?

I tried using ExcludeFoldersFromDeployment in my csproj:

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RuntimeIdentifier>win7-x64</RuntimeIdentifier>
    <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>    
    <AspNetCoreHostingModel>inprocess</AspNetCoreHostingModel>
    <Nullable>enable</Nullable>
    <ExcludeFoldersFromDeployment>cs;de;es;fr;he;hi;it;ja;ko;nl;pl;pt;ru;tr-TR;zh-Hans;zh-Hant</ExcludeFoldersFromDeployment>
  </PropertyGroup>

But that didn't help

Any help ?

like image 497
kofifus Avatar asked Feb 21 '20 00:02

kofifus


2 Answers

Edit your .csproj and add the following line to a PropertyGroup:

<SatelliteResourceLanguages>en</SatelliteResourceLanguages>

It should publish only the selected language resource folder.

like image 101
RenanStr Avatar answered Nov 15 '22 08:11

RenanStr


You get a lot of language folders containing CodeAnalysis.dll files in your published output if you have a project reference to Microsoft.VisualStudio.Web.CodeGeneration.Design, which is needed for scaffolding controllers. If that is true for your project, change the package reference in your .csproj file to include ExcludeAssets="All":

<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.1" ExcludeAssets="All"/>

Refer to https://forums.asp.net/t/2160546.aspx?how+to+get+rid+of+fr+it+ja+etc+folders+in+net+core+3+0+

like image 18
Ryan Avatar answered Nov 15 '22 07:11

Ryan