C# WPF 在构建时创建了太多的文化文件夹

Posted

技术标签:

【中文标题】C# WPF 在构建时创建了太多的文化文件夹【英文标题】:C# WPF creating too many culture folders while building 【发布时间】:2019-11-27 09:37:05 【问题描述】:

我的一些 NuGet 包需要 Microsoft.CodeAnalysis.resources.dllMicrosoft.CodeAnalysis.CSharp.resources.dll,所以我安装了它们。

但是,当我构建项目时,Debug 文件夹中有很多文件夹。

在每个文件夹中,都有

我不需要它们,因为我只想显示英文,我想清除所有其他文件夹。

我手动删除它们并运行应用程序,它运行良好,但我担心如果我在法语 Win 系统上运行它,它会弹出错误,因为“fr”文件夹丢失。


还尝试在 AssemblyInfo.cs 中添加 [assembly: NeutralResourcesLanguage("en")],在 <PropertyGroup> 下添加 <SatelliteResourceLanguages>en</SatelliteResourceLanguages>。但这些文件夹仍然是在构建时创建的。

我正在使用 Visual Studio 2019。

【问题讨论】:

你的应用是 ClickOnce 吗? Disable Dll Culture Folders on Compile的可能重复 @MindSwipe NeutralResourcesLanguageAttribute 没有帮助,正如它在问题中提到的那样 【参考方案1】:

尝试将以下目标添加到csproj文件中,其中使用了Nuget包

<Target Name="RemoveSatelliteAssemblies" AfterTargets="ResolveAssemblyReferences">
  <ItemGroup>
    <ReferenceCopyLocalPaths Remove="@(ReferenceSatellitePaths)" />
  </ItemGroup>
</Target>

它将删除所有不必要的附属程序集。如果法语有问题,你应该离开目标语言程序集

【讨论】:

不错。文件夹 r 现在是空的。

以上是关于C# WPF 在构建时创建了太多的文化文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Kafka Streams应用程序在kafka服务器上打开了太多文件

Spark ALS 算法给出了太多的零因子

在 MySQL 中进行排序时查询花费了太多时间

换个角度聊聊Netty

SQLite 做了太多的小尺寸磁盘读取

使用 API 的 React 中发生了太多的重新渲染