2023-04-12 (水)
[C#] ローカライズ用の言語フォルダを出力しないように設定する
C# のプロジェクトを自己完結型で発行した場合や、NuGet のライブラリを使用した際に、サテライトアセンブリの言語フォルダが出力されます。
必要な言語フォルダのみ出力するように設定する方法です。
環境
- .NET 7.0.202
- C# 11.0
- Visual Studio 2022 Version 17.5.3
- Windows 10 Pro 64bit 22H2 19045.2728
説明
自己完結型で発行すると、以下のような言語フォルダが出力されます。
.csproj
や Directory.Build.props
に、以下のように <SatelliteResourceLanguages>
を設定すると、出力する言語フォルダを指定できます。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>
</PropertyGroup>
</Project>
設定例
英語のみ、言語フォルダを出力しない
<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>
en
で記述されている場合もあるようです。
ちなみに、存在しない言語を指定してしまえば、言語フォルダは出力されなくなります。
<SatelliteResourceLanguages>null</SatelliteResourceLanguages>
日本語の言語フォルダを出力する
<SatelliteResourceLanguages>ja</SatelliteResourceLanguages>
ja
フォルダのみ出力が増えます。
英語は本体の dll に含まれているはずなので、ja フォルダ以外の dll は同じものが出力されます。
複数の言語フォルダを出力する
日本語と韓国語の言語フォルダを出力する設定例です。;
区切りで複数言語を指定します。
<SatelliteResourceLanguages>ja;ko</SatelliteResourceLanguages>
注意点
<SatelliteResourceLanguages>
に空文字を設定すると、全ての言語フォルダが出力されてしまいます。
<SatelliteResourceLanguages></SatelliteResourceLanguages>
感謝
関連記事
新着記事