无法在新的AppDomain中创建UserControl

时间:2013-09-01 11:07:12

标签: c# wpf appdomain

当我将程序集(xxx.dll)加载到新的AppDomain并尝试在那里创建UserControl时,会发生异常:

Could not load file or assembly 'xxx.resources' or one of its dependencies.

当我将程序集加载到Main AppDomain时,它可以正常工作 为什么发生异常?

public void InitializeComponent() {
if (_contentLoaded) {
      return;
}
_contentLoaded = true;

//这里的例外情况

System.Uri resourceLocater = new System.Uri("/Company.AddInApp;component/controls/usercontrol.xaml", System.UriKind.Relative);

#line 1 "..\..\..\Controls\UserControl1.xaml" stem.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}

1 个答案:

答案 0 :(得分:0)

我发现了错误:

var setup = new AppDomainSetup
{
        ApplicationBase = rootAddInsPath,
         ........
};
var appDomain = AppDomain.CreateDomain(...)

//I don't must do this here!!!
appDomain.AssemblyResolve += (sender, args) =>
{
     ....
}

var managerType = typeof(AddInLoadManager);
var manager =(AddInLoadManager)appDomain.CreateInstanceAndUnwrap(managerType.Assembly.FullName, managerType.FullName);

“AppDomain.AssemblyResolve”事件的正确位置在“AddInLoadManager”类中。

感谢您的帮助@ YK1