目錄
未能加載文件或程序集“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.