簡體   English   中英

無法加載 DLL 'ABCpdf9-32.dll'。 找不到指定的模塊(來自 HRESULT 的異常:0x8007007E)

[英]Unable to load DLL ‘ABCpdf9-32.dll’. The specified module could not be found (Exception from HRESULT: 0x8007007E)

在 32 位系統上開發部署成功,但是運行 Windows Server 64 位的生產系統出現了幾個錯誤:

異常 System.DllNotFoundException 無法加載 DLL 'ABCpdf9-32.dll'。 找不到指定的模塊(來自 HRESULT 的異常:0x8007007E)

ABCpdf 是一個支持 32 位和 64 位架構的 3rd 方庫。 .dll 旨在使用軟件供應商提供的安裝程序安裝到位。 當您從供應商處下載安裝程序時,您選擇 32 位安裝程序或 64 位安裝程序,然后安裝它,輸入密鑰就可以了。 從您的應用程序的角度來看,無論您將部署到 32 位還是 64 位,您只需引用 abcpdf.dll,並且 dll 句柄將您指向正確的 dll。

到目前為止的答案誤導了你。 不要通過更改應用程序來解決問題,只需在要部署到的服務器上安裝正確版本的 ABCpdf。

只有在所有開發人員和服務器機器上安裝供應商提供的軟件時,問題才會解決。

我的應用程序是 64 位,一些舊模塊使用 .32 位 ABCpdf。 當我嘗試為使用 64 位 ABCpdf 的新模塊打印 pdf 時,它可以工作並打印。 但是當代碼嘗試使用 32 位的舊模塊打印時,它會拋出以下異常。 因為只有一個 ABCpdf.dll 需要添加。 此外,您不能將 ABCpdf8-32.dll 直接引用到 64 位項目中。

我收到錯誤消息:無法加載 DLL 'ABCpdf8-32.dll':找不到指定的模塊。 (來自 HRESULT 的異常:0x8007007E)”

當我嘗試添加引用時出現以下錯誤。

在此處輸入圖片說明

嘗試了一段時間后,我直接將 dll 添加到 bin 文件夾中,它工作正常。 該權限不僅是問題,因為我的所有文件夾都獲得了適當的權限。 所以,如果有人有類似的問題可以試試這個。

ABCpdf 是一個具有非托管代碼的 COM dll,對嗎? 在這種情況下,它不能在 64 位平台上運行。 下面給出的文章解釋了這一點(檢查它的最后一點)

http://www.hanselman.com/blog/BackToBasics32bitAnd64bitConfusionAroundX86AndX64AndTheNETFrameworkAndCLR.aspx

此外,我還將確保 ABCpdf dll 不依賴於任何其他 32 位 dll。 您可以使用 Dependency Walker 對此進行測試( http://www.dependencywalker.com/

您需要找到相應 COM dll 的 64 位版本。

除非你真的需要你的應用程序是 64 位的(我對此表示懷疑 - 甚至 VS 團隊選擇反對),我建議你只構建和部署為 32 位應用程序。 使用 64 位的理由很少,而且它使第三方驅動程序、COM 對象等變得復雜。甚至可能無法將所有這些都匯總到 64 位版本。

我解決了它,它為 Bin 文件夾中的系統帳戶提供了完全訪問權限。

所以我得到了同樣的錯誤。 我正在使用win64。

  1. APCpdf.NEET64.exe 運行這個(如果你的系統中沒有它)
  2. 轉到 VS(任何版本)右鍵單擊您的解決方案並添加引用
  3. 單擊 COM 選項卡並找到 APCpdf.NET PDF Generation Library
  4. 單擊添加,清理您的解決方案並重新構建它。

這些是我為克服問題而遵循的步驟。 希望能幫助到你 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM