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

如何在VS2022编译ASP.NET MVC项目时仅保留指定组件英文资源?

解决方案:仅保留英文资源DLL

方法1:修改项目文件指定允许的语言

在项目的.csproj文件中添加以下配置,强制MSBuild仅保留英文相关的卫星资源:

<PropertyGroup>
  <!-- 指定仅保留英文资源,en或en-US均可 -->
  <SatelliteResourceLanguages>en</SatelliteResourceLanguages>
</PropertyGroup>

该配置会告知编译系统仅复制指定语言的附属程序集,自动排除其他语言的资源DLL。

方法2:针对特定包精准筛选资源

如果方法1未完全生效,可针对Microsoft.SqlServer.Types和Microsoft.ReportViewer包在.csproj中添加更细致的规则:

<ItemGroup>
  <!-- 配置Microsoft.SqlServer.Types包资源范围 -->
  <PackageReference Include="Microsoft.SqlServer.Types" Version="你的版本号">
    <ExcludeAssets>all</ExcludeAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
  </PackageReference>
  <!-- 对Microsoft.ReportViewer包应用相同配置(若使用NuGet包形式) -->
  <PackageReference Include="Microsoft.ReportViewer.WebForms" Version="你的版本号">
    <ExcludeAssets>all</ExcludeAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
  </PackageReference>
</ItemGroup>

同时添加非英文资源的移除规则:

<ItemGroup>
  <!-- 删除所有非英文资源文件夹及其中的DLL -->
  <Content Remove="**\ar\*.dll" />
  <Content Remove="**\zh-Hans\*.dll" />
  <Content Remove="**\fr\*.dll" />
  <Content Remove="**\es\*.dll" />
  <!-- 按需添加其他不需要的语言代码对应的文件夹 -->
</ItemGroup>

方法3:通过VS UI调整编译设置

  1. 打开项目属性,进入「生成」选项卡
  2. 点击「高级」按钮,在弹出的「高级生成设置」窗口中找到「附属程序集语言」选项
  3. 输入en或en-US后确定保存
    此操作本质与方法1一致,只是通过可视化界面完成配置。

额外注意事项

  • 若Microsoft.ReportViewer是直接引用DLL而非NuGet包,需确保引用的是英文版本DLL,且将其「复制本地」属性设为True,编译后手动删除输出目录中其他语言的资源文件夹。
  • 编译完成后检查输出目录(通常为bin\Release或bin\Debug),确认仅保留en或en-US文件夹下的资源DLL。

内容的提问来源于stack exchange,提问作者Ivan Kuznietsov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:52:39