找不到Leadtools.kernel.annotations.dll指定的模块

时间:2013-06-06 22:16:17

标签: .net dll-injection

我有一个简单的应用程序调用Leadtools.Annotations.AnnCodecs.SaveToTag(AnnContainer容器,AnnCodecsTagFormat格式)。该方法尝试使用System.Reflection.Assembly加载Leadtools.Kernel.Annotations.dll,但操作在特定计算机上失败,并出现以下错误

System.IO.FileNotFoundException:找不到指定的模块。 (HRESULT的例外情况:0x8007007E

我已经使用了ProcMon并验证了QueryOpen和CreateFile对dll的成功结果。我还在分析模式中使用了DependencyWalker而没有运气。唯一找不到的是IESHIMS,它也可以运行应用程序的机器中缺少。

应用程序在其他计算机上运行时没有错误。

更新

使用ILSpy我能够看到违规行

Assembly.LoadFrom("Leadtools.Kernel.Annotations");  

该调用在指定的计算机上无法正常工作,但可以在我尝试过的所有其他计算机上运行。

2 个答案:

答案 0 :(得分:1)

这是来自LEADTOOLS支持的Daoud。 我发布了有关此问题的更多详细信息,因为Reid联系了我们和我与他合作的一位同事。

使用的版本是v14.5,已经过时且已停产。使用的Windows版本是Windows Server 2008标准。 v14.5从未正式支持Windows 2008。 Server 2008在Windows Vista之后问世,v14.5也没有正式支持。但是,我们修补它以使其兼容。

至于你的问题,我可以从故障单中看到,在使用最新的设置后,问题得到解决,一切都运行良好。

如果您在使用LEADTOOLS时遇到任何问题,请随时与我们联系。

LEADTOOLS支持

答案 1 :(得分:1)

使用C ++编写相同的测试文件后问题已解决。使用C ++版本,测试应用程序抛出异常,指定未找到MSVCP71.dll。

This application has failed to start because MSVCP71.dll was not found.  
Re-installing the application may fix this problem.

具体的dll确实不是重点。关键是这种问题可以通过这种方法轻松解决。