加载程序集在默认应用程序域中运行正常(使用Assembly.LoadFrom(dllFile)
),但是当我在新的应用程序域中执行此操作时,它会抛出FileNotFoundException
:
AppDomain ModDomain = AppDomain.CreateDomain("TestTest");
Assembly assembly = ModDomain.Load(dllFile);
我在配置新域时尝试设置ApplicationBase,但它没有效果。
new AppDomainSetup {
ApplicationBase = "/path/to/dll/folder"
}
我尝试了绝对路径和相对路径,并且我已经玩弄了PrivateBinPath
和PrivateBinPathProbe
属性,没有运气。
我可能会遗失什么?
修改
当我使用提到的ApplicationBase
和程序集名称时,错误包含了更多的汇编信息,它以某种方式获得:
FileNotFoundException:无法加载文件或程序集' TestMod,Version = 1.0.6468.36459,Culture = neutral,PublicKeyToken = null'或其中一个依赖项。系统找不到指定的文件。
然而,当我使用任何其他文件路径变体或AppDomainSetup
变体时,它只是说:
FileNotFoundException:无法加载文件或程序集' TestMod'或其中一个依赖项。系统找不到指定的文件。
所以,一个版本似乎比其他版本更了解我的装配。
问题是,我在Mono 2.0上,所以我很难找到正确设置权限的例子......如果这是原因。