[英]BadImageFormat Exception at Microsoft.CSharp library
從8開始轉換到Windows 8.1后,我在運行我的C#應用程序時遇到的問題很小。問題是我從標題中獲得了這個異常並且在線幫助不大。 我試圖找出問題,似乎我的x64應用程序試圖調用x86 CSharp庫。 項目中的引用導致DLL文件,在使用/ headers參數輸出調用x64 dumpbin程序時:
Dump of file Microsoft.CSharp.dll
PE signature found
File Type: DLL
FILE HEADER VALUES
14C machine (x86)
3 number of sections
4FFA5C64 time date stamp Mon Jul 09 06:21:56 2012
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
2022 characteristics
Executable
Application can handle large (>2GB) addresses
DLL
請注意,該計算機是x86,而應用程序在x64中運行(使用Environment.Is64BitProcess檢查)。 這可能是我面臨的問題,但是我找不到解決方法 - 似乎沒有安裝x64 .Net庫。 我找到的唯一的是: C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework
。 或者也許我完全失去了,還有一些其他問題。 無論如何,異常發生在一個構造函數的啟動時,完整的細節是:
Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
"Could not load file or assembly 'Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The module was expected to contain an assembly manifest."
編輯:
雖然仍然恐慌,我通過下載CSharp.dll並在其回答中顯示的路徑中替換虛擬0字節文件來解決這個問題。
該模塊應該包含一個程序集清單
您一直在查看引用程序集,它不是運行程序時實際加載的程序集。 Microsoft.CSharp.dll存儲在GAC中,由.NET安裝程序放在那里。 您可以通過導航到c:\\ windows \\ microsoft.net \\ assembly \\ gac_msil \\ microsoft.csharp來查看該文件。 繼續單擊直到找到該文件。
異常消息是一個非常不健康的消息,它不會將DLL識別為.NET程序集。 除了文件被破壞之外,沒有什么可行的解釋。 文件損壞總是壞消息,強烈暗示您的硬盤出現故障。 您需要修復它,必要時在superuser.com進行跟進
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.