未能加載文件或程序集“sapnco”或它的某一個依賴項


未能加載文件或程序集“sapnco”或它的某一個依賴項。試圖加載格式不正確的程序。

前置條件

  1. 某個VS項目需要對接SAP
  2. 引用了"sapnco.DLL" + "sapnco_utils.dll" 64位版本
  3. 在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版本和項目生成的"目標平台"不一致

  1. 再打開項目的"屬性"配置頁面
  2. 點擊"生成" - 檢查"目標平台" 是否為 Any CPU 或者 x64

解決方案3 - 引用的DLL版本和VS活動解決方案平台不一致

  1. 引用的DLL是64位版本
  2. 檢查VS的活動解決方案平台是否為 Any CPU 或者 x64

解決方案2 - 安裝 Microsoft C Runtime Library 運行時環境類庫

  1. Download Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package MFC Security Update from Official Microsoft Download Center
  2. 假如安裝后還是不行,再換別的解決方案。

解決方案1 - 引用的DLL版本和IIS Express運行時版本不一致時

  1. 右鍵sapnco.dll - 屬性 - 詳細信息
  2. 再打開"Windows 任務管理器" - 確定"IIS Express"運行的是否為64位版
  3. VS - 工具 - 選項 - 搜索"IIS" -
  4. 點擊"項目和解決方案" - Web項目
  5. 勾上√ "對網站和項目使用 IIS Express 的64位版"

相關資料

如何下載最新的sapnco.dll版本?

  1. 連接到 SAP 系統 - Azure Logic Apps | Microsoft Docs

  2. SAP Connector for Microsoft .NET

  3. 2560042 - sapnco.dll and sapnco_utils.dll files missing after NCo installation | SAP Knowledge Base Article

    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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM