2014-01-09 24 views
2

我們在VB.NET 3.5工作的一個驗證腳本的Kofax Capture 9.0/10.0。 我們知道如何使用管理模塊創建腳本,以及如何使其運行。參考VB.NET DLL中的Kofax文檔驗證腳本

的問題是,我們需要引用一個dll,位於遠程機器上。 (GAC是沒有選擇的)這個DLL保存我們在每個驗證腳本中需要的抽象類。

把dll文件即使在本地(複製本地),驗證模塊(index.exe)立即引發了「找不到參考」異常,即使該項目完美編譯。

我想最基本的問題歸結爲:我們在哪裏把dll文件,爲了驗證模塊,以找到他們呢?

回答

1

我們找到了解決方法:添加所有的庫文件作爲 「鏈接」 到項目。 (添加 - >現有文件 - 下一頁>小箭頭「添加」 - >添加爲鏈接) 這可以確保當您生成項目中的文件進行編譯。 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)它可以告訴你更多的細節瞭解爲什麼大會加載失敗並在.NET試圖尋找它解決。由於路徑以外的原因,裝配加載可能會失敗。

更多細節上的.NET程序集的負載如何,請參閱以下內容:

+0

這並沒有爲我們做的伎倆。我們無法將圖書館所有抽象類都複製給每個客戶,因爲這會違反其目的。 – Knots