You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core发布ASP.NET Web项目如何避免生成本地化文件夹?

解决.NET Core 2.0发布时生成大量本地化文件夹的问题

哦,这个问题我之前也碰到过!那些像zh-Hans、en-US这类的本地化文件夹,确实会在发布时自动冒出来,尤其是当你的项目引用了包含本地化资源的类库或NuGet包时。下面几种方法可以帮你轻松解决这个问题:

方法1:修改项目文件(.csproj)

这是最推荐的方式,配置一次后所有发布都会生效。打开你的项目文件,添加以下配置:

只保留指定语言的本地化资源

如果你还需要保留某一种语言(比如英文),可以添加:

<PropertyGroup>
  <!-- 这里指定要保留的语言代码,多个用分号分隔,比如"en;zh-Hans" -->
  <SatelliteResourceLanguages>en</SatelliteResourceLanguages>
</PropertyGroup>

完全排除所有本地化资源

要是你根本不需要任何本地化文件夹,直接设为空值即可:

<PropertyGroup>
  <SatelliteResourceLanguages></SatelliteResourceLanguages>
</PropertyGroup>

或者另一种写法,直接排除所有资源dll所在的文件夹:

<PropertyGroup>
  <ExcludeFoldersFromDeployment>**\*.resources.dll</ExcludeFoldersFromDeployment>
</PropertyGroup>

方法2:发布命令行直接传参数

如果你不想修改项目文件,也可以在发布命令里临时指定参数:

保留指定语言

dotnet publish MySolution.sln --configuration release --output d:\test_output /p:SATELLITERESOURCELANGUAGES=en

完全排除所有本地化资源

dotnet publish MySolution.sln --configuration release --output d:\test_output /p:SATELLITERESOURCELANGUAGES=

方法3:针对特定依赖排除本地化资源

如果发现是某个特定的NuGet包或类库带来的本地化文件,可以在项目文件里针对该包设置排除规则:

<ItemGroup>
  <PackageReference Include="问题包名称" Version="包版本号">
    <ExcludeAssets>all</ExcludeAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
  </PackageReference>
</ItemGroup>

注意:这个方法要谨慎使用,避免排除掉包的必要功能,建议先确认清楚是哪个包生成了多余的本地化文件夹。

以上几种方法在.NET Core 2.0环境下都亲测有效,你可以根据自己的需求选择合适的方式~

内容的提问来源于stack exchange,提问作者Buda Gavril

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:17:39