【问题标题】:Reference VB.NET DLL in Kofax Document Validation Script在 Kofax 文档验证脚本中引用 VB.NET DLL
【发布时间】:2014-01-09 13:32:54
【问题描述】:

我们正在为 VB.NET 3.5 中的 Kofax Capture 9.0 / 10.0 编写验证脚本。 我们知道如何使用管理模块创建脚本,以及如何使其运行。

问题是我们需要引用一个位于远程机器上的 dll。 (GAC 不是选项)这个 dll 包含我们在每个验证脚本中需要的抽象类。

即使将 dll 放在本地(复制本地),验证模块 (index.exe) 也会立即抛出“找不到引用”异常,即使项目编译得很好。

我想基本问题归结为:我们将 dll 放在哪里,以便验证模块找到它们?

【问题讨论】:

    标签: vb.net dll-reference kofax


    【解决方案1】:

    简单的答案是将 dll 与应用程序放在同一个文件夹中,因为这是 .NET 在尝试查找它时会探测的位置之一。验证模块从 Capture bin 目录运行,该目录类似于“C:\Program Files (x86)\Kofax\CaptureSS\ServLib\Bin\”。这需要使用验证在每个客户端上完成。

    如果您有更复杂的场景,您可以查看实现 AppDomain.AssemblyResolve Event 并使用 Assembly.LoadFile 从自定义位置获取程序集,但使用 bin 路径不那么复杂。

    如果您最终遇到更多问题,您可以使用Assembly Binding Log Viewer (Fuslogvw.exe) 进行故障排除,该Assembly Binding Log Viewer (Fuslogvw.exe) 可以告诉您有关为什么程序集无法加载以及 .NET 尝试在何处搜索它的更多详细信息。程序集加载可能会因路径以外的原因而失败。

    有关 .NET 如何加载程序集的更多详细信息,请参阅以下内容:

    【讨论】:

    • 这对我们没有用。我们无法将包含所有抽象类的库复制到每个客户端,因为这会违背其目的。
    【解决方案2】:

    我们找到了解决方案:将所有库文件作为“链接”添加到项目中。 (添加 --> 现有文件 --> “添加”旁边的小箭头 --> 添加为链接) 这可确保在您构建项目时编译文件。 Kofax 验证模块现在可以找到文件,而在引用文件时却找不到。为什么它不能,仍然是一个谜......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 2021-11-10
      • 1970-01-01
      • 2020-01-19
      • 1970-01-01
      • 2017-02-11
      • 1970-01-01
      相关资源
      最近更新 更多