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

WPF PRISM模块化应用为何要求模块资源文件?遇.resources.dll缺失异常

Prism WPF模块缺失.resources.dll异常的解决办法

异常原因

  • .NET加载程序集时,会自动尝试匹配当前线程UICulture的附属资源程序集(即.resources.dll),哪怕你没手动创建资源文件。如果当前UICulture不是中性文化,就会触发这个探测逻辑,找不到文件就会输出该异常提示。
  • 你的项目和Prism模板的配置差异:模板默认可能已经设置了中性语言或禁用了附属资源生成,所以不会出现这个问题。

具体解决方案

方案1:设置项目为中性文化

编辑模块项目的.csproj文件,添加中性语言配置,让.NET不再尝试加载特定文化的附属资源:

<PropertyGroup>
  <!-- 可根据需求改为zh-CN等中性语言 -->
  <NeutralLanguage>en-US</NeutralLanguage>
</PropertyGroup>

或者通过Visual Studio界面操作:右键模块项目→属性→Package→设置“Neutral language”为对应语言,保存后项目会自动更新配置。

方案2:直接禁用附属资源生成

如果不需要多语言支持,彻底关闭附属资源的编译生成:
编辑模块项目的.csproj文件,添加以下配置:

<PropertyGroup>
  <GenerateSatelliteAssemblies>false</GenerateSatelliteAssemblies>
</PropertyGroup>

这样编译后不会生成任何.resources.dll文件,从根源避免探测行为。

方案3:全局设置中性UICulture

如果应用需要保留多语言能力但暂时未准备资源,可在App启动时强制设置UICulture为中性文化:

public partial class App : PrismApplication
{
    protected override void OnStartup(StartupEventArgs e)
    {
        Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
        Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
        base.OnStartup(e);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 16:09:57