在IntelliLock 1.5中,当我的一个dll的棱镜模块停止加载(统一)后,错误信息是:“试图加载一个格式不正确的程序。 (HRESULT异常:0x8007000B)“
首先,我引用了一些包含一些共享对象的可移植库(.net,Silverlight 4)。并且错误类似于“无法加载引用的库System.Windows”,尽管在可移植库中没有UI并且没有引用System.Windows dll。但是经过半天调整IntelliLock并试图找出问题出在哪里之后,Unity开始陷入“尝试加载一个格式不正确的程序。(HRESULT异常:0x8007000B)”错误。
首先我认为引用便携式dll存在问题。我用普通的.net替换这个库,但是错误仍然是一样的。
我正在使用.Net 4客户端配置文件。 WPF,C#,Prism 4,团结。
任何想法如何解决?
答案 0 :(得分:1)
我们前段时间遇到过类似的(??)问题所以我建议:
1)检查是否满足所有依赖关系。运行DependencyWalker并检查没有红线 - 没有遗漏(请阅读一些文档,因为有时它标记为例如IEShims.dll缺少但你不需要它) - 使用正确正确 comp
版本的DependecyWalker(x86 / x64)2)由于Denis Kucherov已经伤心:检查如何编译父和/或子(依赖)对象。一旦我们尝试在x64位机器上使用默认编译为“任何CPU”的.NET项目,通过引用加载为x86编译的C ++ DLL - no go - >例外,例外,崩溃......
3)硬核级别 - 从Sysinternals运行Process Monitor并检查是否有任何丢失/未找到的错误(如果有)。有时这是一个loooong列表...
我猜你试图加载的DLL实际加载好但它本身依赖于其他一些不存在的DLL
P.S。你提到.Net客户端配置文件 - 只需使用完整的.NET Framework尝试一次并检查它是否有帮助 - 如果是这样 - 仔细检查目标comp中安装的.NET客户端配置文件
答案 1 :(得分:1)
我仍然没有得到支持团队的任何答复,正如我之前所说的那样,我实际上并没有想到它。