我正在创建一个辅助角色,使appDomain在该appDomain上加载一个类,以便它可以执行某些方法。我想在appDomain(称为Loader)中加载的类与worker角色位于同一个dll中。当我尝试使用此行
在appDomain中加载类时Loader ld = (Loader)domain.CreateInstanceAndUnwrap(Assembly.GetExecutingAssembly().FullName, typeof(Loader).FullName);
我找到了一个未找到文件的例外:
System.IO.FileNotFoundException was unhandled
Message: An unhandled exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
Additional information: Could not load file or assembly 'Calculation Node, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
我怀疑问题是"访问权限"性质。
我是否需要为该职员角色启用某些设置?
我在程序集和Loader类上都设置了ComVisible(true)。这没有帮助
我还应该提到我正在模拟器上执行辅助角色。
提前致谢,
Nenad Rakic
答案 0 :(得分:0)
好的,我找到了解决方案,所以我认为分享它是一个好主意。在创建新的appDomain之前,您需要创建一个将定义基本目录并设置为执行dll位置的设置,如下所示:
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = Path.GetDirectoryName(Assembly.GetExecutingAssembly()。Location);
然后将此设置传递给AppDomain.CreateDomain();