【问题标题】:Leadtools.kernel.annotations.dll specified module could not be found找不到 Leadtools.kernel.annotations.dll 指定模块
【发布时间】:2013-06-20 02:43:00
【问题描述】:

我有一个简单的应用程序,它调用 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");  

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

【问题讨论】:

    标签: .net dll-injection


    【解决方案1】:

    这是来自 LEADTOOLS 支持的 Daoud。 自从 Reid 与我们以及与他共事的一位同事联系后,我将发布有关此问题的更多详细信息。

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

    至于您的问题,我可以从工单中看到,使用最新设置后,问题已得到解决,并且一切正常。

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

    LEADTOOLS 支持

    【讨论】:

    • 应该注意的是,该 dll 正在安装它的所有其他服务器实例(相同的操作系统)中工作。我仍然没有解决为什么它适用于所有其他服务器而不是这个特定的服务器。
    【解决方案2】:

    使用 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 真的不是重点。关键是这种类型的问题很可能通过遵循这种方法很容易解决。

    【讨论】:

      猜你喜欢
      • 2017-09-17
      • 2011-01-05
      • 2021-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 2014-04-11
      相关资源
      最近更新 更多