日期:2014-05-18  浏览次数:20911 次

程序集绑定出错问题(紧急)
由于其它原因,A.dll没有部署在应用程序EAI.exe的子目录中,这样在应用程序的EAI.exe.config文件中指定: 
<dependentAssembly> 
<assemblyIdentity name= "A " culture= "neutral "/> 
<codeBase href= "../AA/A.dll "/> 
</dependentAssembly> 
说明:A.dll为非强签名文件 ,而且A.dll也存在指定AA的目录。 
运行时总是报错:无法加载应用A.dll或它的依赖项。 
  从绑定日志上看好像EAI.exe.config并没有起作用,为什么会从Framework搜索? 
跟踪程序集绑定日志: 

操作失败。 
绑定结果: hr = 0x80070002。The system cannot find the file specified. 

程序集管理器加载位置: C:\WINDOWS\Microsoft.NET\Framework\V2.0.50727\mscorwks.dll 
在可执行文件下运行 C:\U8SOFT\EAI\U8EAI.exe 
--- 详细的错误日志如下。 

=== 预绑定状态信息 === 
日志: 用户 = PDOMAIN\XXXX 
日志: Where-ref 绑定。位置 = C:\SOFT\Framework\A.dll 
日志: Appbase = file:///C:/SOFT/EAI/ 
日志: 初始 PrivatePath = NULL 
日志: 动态基 = NULL 
日志: 缓存基 = NULL 
日志: AppName = EAI.exe 
调用程序集: (Unknown)。 
=== 
日志: 此绑定从 LoadFrom 加载上下文开始。 
警告: 将不在 LoadFrom 上下文中探测本机映像。仅在默认加载上下文中探测本机映像,例如,使用 Assembly.Load()。 
日志: 正在使用应用程序配置文件: C:\SOFT\EAI\EAI.exe.config 
日志: 使用 C:\WINDOWS\Microsoft.NET\Framework\V2.0.50727\config\machine.config 的计算机配置文件。 
日志: 试图下载新的 URL file:///C:/SOFT/Framework/A.dll。 
日志: 已尝试所有探测 URLs 但全部失败。

------解决方案--------------------
不可以使用父路径
如 ../a/a.dll 不可以

a/a.dll 可以

http://url/a.dll 可以

置于为啥

可以到google 搜寻 "运行库如何定位程序集"
------解决方案--------------------
帮你顶了。
------解决方案--------------------
用<codeBase href= "~/AA/A.dll "/>试试
------解决方案--------------------
貌似要用full name
------解决方案--------------------
全路径 和相对路径都试试