IMessageService.ShowXXXX mscorlib.dll 中的 MissingManifestException

MissingManifestException in mscorlib.dll on IMessageService.ShowXXXX

在我的视图模型中,我有一个在构造函数中初始化的 IMessageService:

private IMessageService messageService;
public MyViewModel()
{
    messageService = ServiceLocator.Default.ResolveType<IMessageService>();
}

它的 Show 方法有效,但是 ShowError、ShowInformation 和 ShowWarning(任何需要资源的东西,这里是图标)崩溃,MissingManifestException 指向 Catel.Properties.Resources.resources 清单。

是我这边的错误(错误安装Catel)还是因为它是.Net 4.0版本的Catel?令人惊讶的是,我有另一个 Catel for .Net 4.0 项目没有显示此错误。

编辑:Show,当给定 MessageImage 时,可以完美运行并显示图标。

编辑 2:别管我上次编辑了,现在一切似乎都正常了……没有任何原因。用 MessageImage 调用 Show 会有 "loaded" 资源什么的?这似乎不太可能。

我找到了来源:调试模式下的 CLR 异常中断

看起来 Catel 有时会抛出一些 已处理的异常 ,如果您在异常设置中检查了公共语言运行时 (Visual Studio menu > Debug > Exception...), 你的调试器会中断这些。

还不错,只需按 F5 (Continue) 即可通过。

让我百思不得其解的是,这个MissingManifestException按F5后又坏了。事实上,它似乎 中断多个资源图标 ,看起来它就像一个真正未处理的异常一样继续中断。

但是没有,所以 如果您遇到 Catel 异常,请继续按 F5 或禁用 CLR 异常中断

编辑:正如Geert建议的那样,您确实不需要禁用每个 CLR 异常中断...只需禁用 MissingManifestException。