在 ASP.NET Core 6 中,为啥 System.Private.ServiceModel.resources.dll 的已发布输出中需要语言文件夹以及如何消除它们?
Posted
技术标签:
【中文标题】在 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 中,为什么 System.Private.ServiceModel.resources.dll 的已发布输出中需要语言文件夹以及如何消除它们? 【发布时间】:2021-12-03 17:04:24 【问题描述】:在 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-汉特)?
最后,有没有更好的方法让这些消失?例如某处的一些配置?
【问题讨论】:
【参考方案1】:您可以添加SatelliteResourceLanguages
来限制文件夹。
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
</PropertyGroup>
【讨论】:
您是否知道有关此更改的文档?在 .NET 5 中,dotnet publish
命令没有创建这些文件夹。以上是关于在 ASP.NET Core 6 中,为啥 System.Private.ServiceModel.resources.dll 的已发布输出中需要语言文件夹以及如何消除它们?的主要内容,如果未能解决你的问题,请参考以下文章
为啥要在 ASP.Net Core 中获取多个 IMemoryCache 实例?
ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解
为啥我们不再需要在更高版本的 ASP.NET Core 中手动验证模型?