我有一个托管程序集加载问题源自衍生的混合模式进程。详情请参阅下文。假设BinPath和ExecutablePath是两个不同的有效路径。装配加载失败
我有一个在BinPath开始一个web应用程序,并创建使用下面的ProcessStartInfo的过程:
new ProcessStartInfo()
{
FileName = ExecutablePath + "PerformanceRunner.exe",
WorkingDirectory = ExecutablePath ,
UseShellExecute = true
};
PerformanceRunner.exe然后成功加载驻留在ExecutablePath(这是通过观察验证几个托管DLL在VS的模块窗口中)。然后它会尝试加载位于ExecutablePath中的托管程序集,但这会失败。这里是融合日志 - 注意BinPath是“G:\ TOPSS \ TOPSS New \ Common \ Service \ Bin”,托管程序集是TPSSCDQ.dll。 TPSSCDQ驻留在ExecutablePath中。
*大会粘结剂日志条目(2012年11月29日@下午4时16分11秒)*
操作失败。绑定结果:hr = 0x80070002。系统不能 找到指定的文件。 C:从加载
大会经理\的Windows \ Microsoft.NET \框架\ v4.0.30319 \ clr.dll下 可执行摹运行:\ TOPSS \ TOPSS新建\ COMMON \服务\ BIN \ PerformanceRunner.exe
===预绑定状态信息===
LOG:用户= CORP \ lbhra
LOG:DisplayName的= TpssCDQ,版本= 1.0.4612.26218文化=中性, 公钥=空(完全指定的)
LOG:应用平台=文件:/// G:/ TOPSS/TOPSS新建/公共/服务/滨/
LOG:初始PrivatePath = NULL
LOG:动态基地= NULL
LOG:高速缓存基址= NULL
LOG:AppName的= PerformanceRunner.exe
调用组件:(未知)。
===
LOG:此绑定默认加载上下文开始。
LOG:找不到应用程序配置文件。
LOG:使用主机配置文件:
LOG:从 C使用计算机配置文件:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ CONFIG \ machine.config中。
LOG:政策没有被在这个时间(私人, 定制,部分,或基于位置的组件绑定)施加到参考。
LOG:试图下载新的URL文件:/// G:/ TOPSS/TOPSS New/Common/Service/Bin/TpssCDQ.DLL。
LOG试图下载新的URL文件:/// G:/ TOPSS/TOPSS New/Common/Service/Bin/TpssCDQ/TpssCDQ.DLL。
LOG:尝试新的URL文件下载:/// G:/ TOPSS/TOPSS 新/通用/服务/斌/ TpssCDQ.EXE。
LOG试图下载新的URL文件:/// G:/ TOPSS/TOPSS New/Common/Service/Bin/TpssCDQ/TpssCDQ.EXE。
LOG:所有探测URL尝试失败。
我不完全理解的PrivatePath,应用平台或DYNAMICBASE是,但不应将这些路径中的至少一个是工作目录(ExecutablePath)?我已验证使用GetCurrentDirectory工作目录设置正确。我真的很感激这个,因为我很困惑。