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

Ron*_*n C 12 asp.net-core dotnet-publish .net-6.0 visual-studio-2022

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

在此输入图像描述

这些文件夹包含一个 dll,即System.Private.ServiceModel.resources.dll. 据我所知,这些文件夹不存在于 Asp.NET 5 中,并且它们给部署添加了我不希望有的混乱/噪音。

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

小智 25

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

<PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <SatelliteResourceLanguages>en</SatelliteResourceLanguages>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

  • 您碰巧知道此更改的文档吗?在 .NET 5 中,“dotnetpublish”命令不会创建这些文件夹。 (2认同)