未能載入檔案或程式集“sapnco”或它的某一個依賴項
阿新 • • 發佈:2021-07-10
目錄
未能載入檔案或程式集“sapnco”或它的某一個依賴項。試圖載入格式不正確的程式。
前置條件
- 某個VS專案需要對接SAP
- 引用了"sapnco.DLL" + "sapnco_utils.dll" 64位版本
- 在VS2015編譯後執行就提示了錯誤
錯誤詳情
“/”應用程式中的伺服器錯誤。 未能載入檔案或程式集“sapnco”或它的某一個依賴項。試圖載入格式不正確的程式。 說明: 執行當前 Web 請求期間,出現未經處理的異常。請檢查堆疊跟蹤資訊,以瞭解有關該錯誤以及程式碼中導致錯誤的出處的詳細資訊。 異常詳細資訊: System.BadImageFormatException: 未能載入檔案或程式集“sapnco”或它的某一個依賴項。試圖載入格式不正確的程式。 源錯誤: 執行當前 Web 請求期間生成了未經處理的異常。可以使用下面的異常堆疊跟蹤資訊確定有關異常原因和發生位置的資訊。 程式集載入跟蹤: 下列資訊有助於確定程式集“sapnco”未能載入的原因。 === 預繫結狀態資訊 === 日誌: DisplayName = sapnco (Partial) 警告: 為程式集提供了部分繫結資訊: 警告: 程式集名稱: sapnco | 域 ID: 2 警告: 當僅提供程式集顯示名稱的一部分時,將發生部分繫結。 警告: 這可能導致聯程式設計序載入錯誤的程式集。 警告: 建議為程式集提供完全指定的文字標識, 警告: 並由簡單名稱、版本、區域性和公鑰標記組成。 警告: 有關此問題的詳細資訊和常見解決方案,請參見白皮書 http://go.microsoft.com/fwlink/?LinkId=109270。 呼叫程式集: (Unknown)。 === 日誌: 此繫結從 default 載入上下文開始。 日誌: 使用主機配置檔案: D:\UserProfile\Documents\IISExpress\config\aspnet.config 日誌: 使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 的計算機配置檔案。 日誌: 此時沒有為引用應用策略(私有、自定義、分部或基於位置的程式集繫結)。 日誌: 嘗試下載新的 URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/c61b4375/7866de00/sapnco.DLL。 日誌: 嘗試下載新的 URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/c61b4375/7866de00/sapnco/sapnco.DLL。 錯誤: 未能完成程式集的安裝(hr = 0x8007000b)。探測終止。 堆疊跟蹤: [BadImageFormatException: 未能載入檔案或程式集“sapnco”或它的某一個依賴項。試圖載入格式不正確的程式。] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0 [ConfigurationErrorsException: 未能載入檔案或程式集“sapnco”或它的某一個依賴項。試圖載入格式不正確的程式。] System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +721 [HttpException (0x80004005): 未能載入檔案或程式集“sapnco”或它的某一個依賴項。試圖載入格式不正確的程式。] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +660
解決方案4 - 引用的DLL版本和專案生成的"目標平臺"不一致
- 再開啟專案的"屬性"配置頁面
- 點選"生成" - 檢查"目標平臺" 是否為
Any CPU
或者x64
解決方案3 - 引用的DLL版本和VS活動解決方案平臺不一致
- 引用的DLL是64位版本
- 檢查VS的活動解決方案平臺是否為
Any CPU
或者x64
解決方案2 - 安裝 Microsoft C Runtime Library 執行時環境類庫
- Download Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package MFC Security Update from Official Microsoft Download Center
- 假如安裝後還是不行,再換別的解決方案。
解決方案1 - 引用的DLL版本和IIS Express執行時版本不一致時
- 右鍵
sapnco.dll
- 屬性 - 詳細資訊 - 再開啟"Windows 工作管理員" - 確定"IIS Express"執行的是否為64位版
- VS - 工具 - 選項 - 搜尋"IIS" -
- 點選"專案和解決方案" - Web專案
- 勾上√ "對網站和專案使用 IIS Express 的64位版"
相關資料
如何下載最新的sapnco.dll
版本?
-
連線到 SAP 系統 - Azure Logic Apps | Microsoft Docs
- 請確保安裝最新版本,使用 .NET Framework 4.0 編譯的 Microsoft .NET 3.0.22.0 的 SAP 聯結器 (NCo 3.0) - Windows 64 位 (x64)。
- 必須安裝 64 位版本的 SAP 客戶端庫,因為資料閘道器僅在 64 位系統上執行。 安裝不受支援的 32 位版本會導致“錯誤的映像”錯誤。
- 錯誤詳細資訊:“無法載入檔案或程式集 'sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken 50436dca5c7f7d23' 或某個依賴項。系統找不到指定檔案。”
-
SAP Connector for Microsoft .NET
- Compiled with .NET Framework 4.0
SAP Connector for Microsoft .NET 3.0.24.0 for Windows 32bit (x86), May 20, 2021 (ZIP archive, 18,589 KB)
SAP Connector for Microsoft .NET 3.0.24.0 for Windows 64bit (x64), May 20, 2021 (ZIP archive, 11,347 KB) - NCo 3.0 的 .NET 4.0 變體需要 Microsoft C++ Runtime DLL 10.0 版(包含在 Microsoft Visual C++ 2010 Redistributables 中)。您可以從Microsoft 下載頁面獲取 MSI 安裝程式。
- Download Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package MFC Security Update from Official Microsoft Download Center
- Compiled with .NET Framework 4.0
-
After downloading the SAP .Net Connector 3.0 from the SAP Marketplace and installing it, it is not possible to find the sapnco.dll and sapnco_utils.dll libraries.