从 AppDomain 创建实例时程序集未解析
本文关键字:程序集 AppDomain 创建 实例 | 更新日期: 2023-09-27 18:30:09
var processAssembly = Assembly.LoadFile(baseLocationCCDebugFolder+"''CC.dll");
var processType = processAssembly.GetType("CC.Executor.CCProcess",true,true);
AppDomainSetup appDSetup = new AppDomainSetup()
{
ApplicationBase = baseLocationCCDebugFolder,
//PrivateBinPath = processAssembly.CodeBase
};
StrongName fullTrustAssembly = processAssembly.Evidence.GetHostEvidence<StrongName>();
AppDomain executionDomain = AppDomain.CreateDomain("ExecutionDomain",null,appDSetup,internetPS,fullTrustAssembly);
CCProcess process =(CCProcess)executionDomain.CreateInstanceAndUnwrap(processAssembly.ManifestModule.FullyQualifiedName, processType.FullName);
我在这段代码的最后一行遇到错误,如下所示。
Could not load file or assembly 'D:''work''compilerCom''CompileCom_Build_4_newArchitecture''CompilerCom''CC''bin''Debug''CC.dll' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)<br/>
我仍在应用程序域中找出我的方式。
我做错了什么?
编辑:-baseLocationCCDebugFolder
变量的值为 D:''work''compilerCom''CompileCom_Build_4_newArchitecture''CompilerCom''CC''bin''Debug
我的猜测是,不是找不到程序集,而是引用的程序集之一未正确加载。 您可能需要在父应用程序域中处理解析程序集事件。 这里有一篇很好的帖子来描述它。
http://social.msdn.microsoft.com/forums/en-US/clr/thread/0a18ed66-6995-4e7c-baab-61c1e528fb82/