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

如何禁用.NET Core MSTest项目构建自动生成的语言文件夹

问题描述

使用Visual Studio 2019创建C# MSTest Test Project (.NET Core)项目时,每次执行项目构建操作,都会生成多个以双字母命名的语言文件夹,效果如下图所示:
每次构建自动生成的语言文件夹

每个语言文件夹中包含如下文件:

  • Microsoft.TestPlatform.CommunicationUtilities.resources.dll
  • Microsoft.TestPlatform.CoreUtilities.resources.dll
  • Microsoft.TestPlatform.CrossPlatEngine.resources.dll
  • Microsoft.VisualStudio.TestPlatform.Common.resources.dll
  • Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll

这些文件和文件夹不属于项目必需内容,手动删除后下次构建会重新生成,可通过以下配置彻底关闭该自动生成行为。

解决方案

方案一:指定项目卫星资源语言(推荐)

该方法通过显式声明项目需要的本地化语言,阻止构建流程复制无关语言的资源文件夹,无额外性能开销:

  1. 右键解决方案资源管理器中的对应MSTest项目,选择「编辑项目文件」,打开.csproj配置文件
  2. 在首个<PropertyGroup>节点内添加如下配置:
<!-- 不需要多语言支持直接填en即可,不会生成多余的语言文件夹 -->
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>

如果项目需要保留简体中文资源,将属性值改为zh-Hans即可,构建时仅会保留简体中文对应的资源文件夹,其他语言文件夹不会生成。
3. 保存配置后先执行「清理解决方案」,手动删除输出目录下已存在的残留语言文件夹,后续重新构建就不会再生成多余内容。

方案二:添加构建后自动清理规则(兼容旧版.NET Core SDK)

如果方案一在当前使用的SDK版本下不生效,可以添加构建目标,在每次构建完成后自动清理生成的无用语言文件夹:

  1. 打开项目的.csproj文件
  2. 在末尾的</Project>标签之前添加如下配置:
<Target Name="RemoveUselessLanguageFolders" AfterTargets="Build">
  <ItemGroup>
    <!-- 匹配输出目录下双字母、区域代码格式的语言文件夹 -->
    <FoldersToDelete Include="$(OutputPath)\??\" />
    <FoldersToDelete Include="$(OutputPath)\??-??\" />
  </ItemGroup>
  <RemoveDir Directories="@(FoldersToDelete)" />
</Target>
  1. 保存配置后重新构建,多余的语言文件夹会在构建完成后被自动删除,无需手动操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 01:12:26