【问题标题】:Invalid PE file error on Unity while running pdb2mdb.exe运行 pdb2mdb.exe 时 Unity 上出现无效的 PE 文件错误
【发布时间】:2017-01-21 22:46:42
【问题描述】:

我正在尝试从“.pdb”文件生成“.mdb”文件,以便为 DLL 设置调试会话。但是我在 pdb2mdb.exe 文件上收到“BadImageFormatException:无效的 PE 文件”。

与问题相关的 Unity 文档:https://docs.unity3d.com/Manual/UsingDLL.html

这是我正在运行的命令:

"D:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0\pdb2mdb.exe" "D:\Projects\UnityXGame\UnityXGame.Games\UnityXGame.Sandbox\Assets\UnityXGame.Unity.Common.pdb"

此参考文件可在 Unity 5 上正确运行。我可以调用类及其实例。

我收到以下错误:

未处理的异常:System.BadImageFormatException:无效的 PE 文件 文件名: 'D:\Projects\UnityXGame\UnityXGame.Games\UnityXGame.Sandbox\Assets\UnityXGame.Unity.Common.pdb' ---> Mono.Cecil.Binary.ImageFormatException:Mono.Cecil.Binary.ImageReader.VisitDOSHeader(DOSHeader) 处的 PE 文件签名无效 标题)在 Mono.Cecil.Binary.Image.Accept(IBinaryVisitor 访问者)
在 Mono.Cecil.Binary.ImageReader.Read(字符串文件) Mono.Cecil.Binary.ImageReader.Read(字符串文件)在 Mono.Cecil.AssemblyFactory.GetAssembly(字符串文件)在 Pdb2Mdb.Driver.Main(String[] args)

有什么办法可以解决这个错误吗?

【问题讨论】:

    标签: unity3d unity5


    【解决方案1】:

    传递给 pdb2mdb 的参数应该是程序集文件(.exe 或 .dll)而不是 .pdb 文件。 Unity文档页面上没有很好地解释该工具的用法,但here are some tips on how to use it

    【讨论】:

    • 谢谢。我刚刚更改了构建脚本,现在效果很好!没错,将 .pdb 文件作为第一个实例的输入是没有任何意义的 :)
    猜你喜欢
    • 2012-02-09
    • 2020-03-29
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多