在 ASP.NET Core 6 中,为什么 System.Private.ServiceModel.resources.dll 的已发布输出中需要语言文件夹以及如何消除它们?

In ASP.NET Core 6, why language folders needed in Published output for System.Private.ServiceModel.resources.dll and how to eliminate them?

在 ASP.NET Core 6 中,当作为独立的 win-x86 网站发布时,会在发布文件夹中创建一堆语言文件夹。

这些文件夹包含一个 dll,即 System.Private.ServiceModel.resources.dll。据我所知,这些文件夹不存在 Asp.NET 5,它们将 clutter/noise 添加到我不想拥有的部署中。

您能解释一下为什么这样的部署需要 System.Private.ServiceModel.resources.dll 所有这些本地化版本吗?另外,由于我的网站只有英文版,我能否安全地删除所有语言文件夹(即 cs、de、es、fr、it、ja、ko、pl、pt-BR、ru、tr、zh-Hans、zh-汉)? 最后,有没有更好的方法让这些消失?例如某处的一些配置?

您可以添加SatelliteResourceLanguages来限制文件夹。

<PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <SatelliteResourceLanguages>en</SatelliteResourceLanguages>
</PropertyGroup>