c# - WPF 资源加载在 LoadFrom 加载上下文中失败

标签 c# wpf xaml assembly-loading

我有一个 WPF 程序集,我使用 LoadFrom 加载上下文从 native 代码在互操作场景中使用,如下所示:

AppDomain.CreateInstanceFrom("c:\mydlls\mywpfstuff.dll", "myclass")

请注意,mydlls 与可执行文件所在的文件夹不同。这对于我也加载的常规非 ui .NET dll 工作正常,但是当我尝试这样做时,我得到一个错误。我附加了 AppDomain.CurrentDomain.AssemblyResolve 事件处理程序并获取了一个无法加载的事件。 ResolveEventArgs 中的名称是“mywpfstuff.resources”,RequestingAssembly 为空。我没有名为“mywpfstuff.resources”的文件,无法弄清楚如何解决这个程序集问题。

触发错误的代码行是 InitializeComponent();调用我的主要用户控件构造函数。

在我看来,内部 XAML(BAML?)机制试图加载一些资源,但使用的是标准 Load 上下文而不是 LoadFrom 上下文。

有什么方法可以解决这个问题,最好是让 WPF 使用 LoadFrom 上下文,或者如果这不可能,如何手动解析程序集?

最佳答案

由于本地化问题和缺少 resx,我过去也遇到过类似的问题。

如果 XAML 使用该程序集中的资源,请仔细检查用于 UI 文化的资源是否在 c:\mydlls正确子文件夹 中实际可用.

关于c# - WPF 资源加载在 LoadFrom 加载上下文中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12703887/

相关文章:

c# - Windows 应用商店应用程序用户控制项目上的 "Xaml Parsing Failed"

c# - 如何在模型和 View 模型中使用 "DRY up"C# 属性?

c# - LINQ ToDictionary 如何获取项目索引?

c# - 无法从 Azure Function 应用程序的 Nuget 安装 ApplicationInsights

wpf - 在 MVVM 架构中应在何处以及如何管理选定的项目?

xaml - 让 Unity 解析 XAML 中的 View

c# - 在 WPF 中使用 DataTrigger 设置 Grid.Column

c# - C# 中的 Diff b/w ref 和 out 参数

WPF TouchEvents-捕获第一次触地得分

c# - Wpf Datagrid 中的组标题为空