【问题标题】:BadImageFormat Exception at Microsoft.CSharp libraryMicrosoft.CSharp 库中的 BadImageFormat 异常
【发布时间】:2023-03-10 23:46:01
【问题描述】:

从 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 字节文件解决了这个问题。

【问题讨论】:

    标签: c# .net windows


    【解决方案1】:

    该模块应包含程序集清单

    您一直在查看参考程序集,它不是您运行程序时实际加载的程序集。 Microsoft.CSharp.dll 存储在 GAC 中,由 .NET 安装程序放在那里。您可以通过导航到 c:\windows\microsoft.net\assembly\gac_msil\microsoft.csharp 来查看该文件。继续点击,直到找到文件。

    异常消息是一个非常不健康的消息,它不会将 DLL 识别为 .NET 程序集。除了文件损坏之外,几乎没有像样的解释。文件损坏总是坏消息,强烈暗示您的硬盘出现故障。您需要修复它,如有必要,请在 superuser.com 上跟进

    【讨论】:

    • 看起来你是对的,该路径将我带到一个实际上是空的 DLL 文件(其中没有一个字节)。位置中的其他文件看起来没问题,也许用工作的 DLL 替换它可能会起作用..无论如何我很好奇这种损坏是如何发生的。我重新安装了 VS2012 并禁用/重新启用 .Net 作为重新安装的功能,甚至安装了 4.5 和 4.5.1 的 SDK 包。
    • 正如我所说,这是硬盘出现故障的迹象。随意恐慌。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多