我有我使用LoadFrom加載上下文這樣在互操作場景中使用從本機代碼WPF組件:WPF資源加載在LoadFrom加載上下文失敗
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上下文或如果這是不可能的如何手動執行程序集解析?
你在'mywpfstuff'項目,名稱'Resources.resx'文件(可能在'屬性文件夾)?如果是這樣的話,它有什麼'Build Action'? – SHSE
我不太確定 - 你會看到很多dll-s在使用AssemblyResolve時嘗試加載(以我的經驗)。你還有什麼要補充你的項目 - 什麼是'myclass'? – NSGaga
當請求mywpfstuff.resources時,是否嘗試從您的事件處理程序返回mywpfstuff程序集? – mgronber