none
win7 64 位运行vs2008开发的软件 出现 CLR20r3 错误 是什么原因呢? RRS feed

  • 问题

  • 描述: Stopped working 问题签名: 问题事件名称: CLR20r3 问题签名 01: test.exe 问题签名 02: 1.0.0.0 问题签名 03: 4d548d22 问题签名 04: Control 问题签名 05: 1.0.0.0 问题签名 06: 4d539eec 问题签名 07: 1e3 问题签名 08: 25 问题签名 09: System.BadImageFormatException OS 版本: 6.1.7600.2.0.0.768.2 区域设置 ID: 2052
    2011年2月14日 3:57

答案

  • BadImageFormatException通常提示64位进程中调用了32位本机代码,或者相反

    默认时,纯粹的dotnet程序 在64位OS环境里使用64位CLR,在32位OS里使用32位CLR;如果你的dotnet程序使用P/Invoker等方式调用了本机代码,则该程序不是一个纯粹的dotnet程序,即它只能特定使用64位或32位环境(依据被调用的本机代码是64/32来决定)

    可以使用corflags命令行工具查看/更改32BIT标志位,以强制dotnet程序运行于32/64位CLR里

    2011年2月14日 9:19