Skip to content

Commit f7073d4

Browse files
committed
Set InvariantGlobalization in api, webapi, grpc, and worker templates
API server applications do not typically need culture aware behavior. A better default is to use invariant globalization mode for API apps. This allows for the globalization code to be trimmed away, making the final executable size smaller. It also reduces startup and memory consumption because ICU isn't loaded. This also allows the apps to run with consistent behavior on container images that don't include ICU, making the container image smaller as well. Fix #47029
1 parent 9c7db55 commit f7073d4

File tree

6 files changed

+6
-0
lines changed

6 files changed

+6
-0
lines changed

src/ProjectTemplates/Web.ProjectTemplates/Api-CSharp.csproj.in

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<NoDefaultLaunchSettingsFile Condition="'$(ExcludeLaunchSettings)' == 'True'">true</NoDefaultLaunchSettingsFile>
88
<RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Company.WebApplication1</RootNamespace>
99
<ServerGarbageCollection>false</ServerGarbageCollection>
10+
<InvariantGlobalization>true</InvariantGlobalization>
1011
<!--#if (NativeAot) -->
1112
<PublishAot>true</PublishAot>
1213
<!--#endif -->

src/ProjectTemplates/Web.ProjectTemplates/GrpcService-CSharp.csproj.in

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<TargetFramework>${DefaultNetCoreTargetFramework}</TargetFramework>
55
<Nullable>enable</Nullable>
66
<ImplicitUsings>enable</ImplicitUsings>
7+
<InvariantGlobalization>true</InvariantGlobalization>
78
<!--#if (NativeAot) -->
89
<PublishAot>true</PublishAot>
910
<!--#endif -->

src/ProjectTemplates/Web.ProjectTemplates/WebApi-CSharp.csproj.in

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<TargetFramework>${DefaultNetCoreTargetFramework}</TargetFramework>
55
<Nullable>enable</Nullable>
66
<ImplicitUsings>enable</ImplicitUsings>
7+
<InvariantGlobalization>true</InvariantGlobalization>
78
<UserSecretsId Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'">aspnet-Company.WebApplication1-53bc9b9d-9d6a-45d4-8429-2a2761773502</UserSecretsId>
89
<NoDefaultLaunchSettingsFile Condition="'$(ExcludeLaunchSettings)' == 'True'">True</NoDefaultLaunchSettingsFile>
910
<RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Company.WebApplication1</RootNamespace>

src/ProjectTemplates/Web.ProjectTemplates/WebApi-FSharp.fsproj.in

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>${DefaultNetCoreTargetFramework}</TargetFramework>
5+
<InvariantGlobalization>true</InvariantGlobalization>
56
<NoDefaultLaunchSettingsFile Condition="'$(ExcludeLaunchSettings)' == 'True'">True</NoDefaultLaunchSettingsFile>
67
<RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Company.WebApplication1</RootNamespace>
78
</PropertyGroup>

src/ProjectTemplates/Web.ProjectTemplates/Worker-CSharp.csproj.in

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<TargetFramework>${DefaultNetCoreTargetFramework}</TargetFramework>
55
<Nullable>enable</Nullable>
66
<ImplicitUsings>enable</ImplicitUsings>
7+
<InvariantGlobalization>true</InvariantGlobalization>
78
<UserSecretsId>dotnet-Company.Application1-53bc9b9d-9d6a-45d4-8429-2a2761773502</UserSecretsId>
89
<NoDefaultLaunchSettingsFile Condition="'$(ExcludeLaunchSettings)' == 'True'">True</NoDefaultLaunchSettingsFile>
910
<RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Company.Application1</RootNamespace>

src/ProjectTemplates/Web.ProjectTemplates/Worker-FSharp.fsproj.in

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<PropertyGroup>
44
<TargetFramework>${DefaultNetCoreTargetFramework}</TargetFramework>
55
<UserSecretsId>dotnet-Company.Application1-53bc9b9d-9d6a-45d4-8429-2a2761773502</UserSecretsId>
6+
<InvariantGlobalization>true</InvariantGlobalization>
67
<NoDefaultLaunchSettingsFile Condition="'$(ExcludeLaunchSettings)' == 'True'">True</NoDefaultLaunchSettingsFile>
78
<RootNamespace Condition="'$(name)' != '$(name{-VALUE-FORMS-}safe_namespace)'">Company.Application1</RootNamespace>
89
</PropertyGroup>

0 commit comments

Comments
 (0)