1

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

System.IO.FileNotFoundException:找不到指定的模块。(来自 HRESULT 的异常:0x8007007E

我已经使用了 ProcMon 并验证了 QueryOpen 和 CreateFile 导致对 dll 的成功。我还在分析模式下使用了 DependencyWalker,但没有运气。它唯一找不到的 dll 是 IESHIMS,它也从可以运行该应用程序的机器中丢失。

该应用程序在其他机器上运行没有错误。

更新

使用 ILSpy 我能够看到有问题的行是

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

该调用在指定的机器上根本不起作用,但在我尝试过的所有其他机器上都起作用。

4

2 回答 2

1

This is Daoud from LEADTOOLS support. I'm posting more details about this issue since Reid contacted us and one of my colleagues we worked with him.

The version used is v14.5, which is old and out of production. The Windows version used is Windows Server 2008 standard. Windows 2008 was never officially supported with v14.5. Server 2008 came out after Windows Vista, which also wasn’t officially supported with v14.5. However, we did patch it to make it compatible.

As for your issue, I can see from the ticket that after using the latest setup, the issue was fixed and everything works well again.

Please do not hesitate to contact us if you face any problem with LEADTOOLS.

LEADTOOLS support

于 2013-06-13T15:04:30.363 回答
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 确实不是重点。关键是这种类型的问题可能可以通过遵循这种方法轻松解决。

于 2013-06-19T18:43:00.387 回答