1. 程式人生 > 其它 >未能載入檔案或程式集“sapnco”或它的某一個依賴項

未能載入檔案或程式集“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.

作者:Asion Tang出處:http://asiontang.cnblogs.com凡是沒有註明[轉載]的文章,本Blog發表的文章版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。