2

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

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

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

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

4

2 回答 2

1

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

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

如果您最终遇到更多问题,您可以使用程序集绑定日志查看器 (Fuslogvw.exe)进行故障排除,该查看器可以告诉您有关程序集加载失败的原因以及 .NET 尝试搜索它的位置的更多详细信息。程序集加载可能会因路径以外的原因而失败。

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

于 2014-01-12T22:46:31.173 回答
1

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

于 2014-01-27T10:05:36.130 回答