我回来尝试比较两个 .exe,这次做了一些更改。
- 在 Microsoft Visual Studio 2010 中构建项目
- 项目目标框架 = .NET Framework 3.5 客户端配置文件
我构建项目,dumpbin /rawdata
在 .exe 上运行并输出到文本文件。接下来我重新构建项目并dumpbin /rawdata
在新的 .exe 上运行并输出到新的文本文件。然后我对每一个进行 CRC 校验以确保它们是相同的(在构建之间不进行任何更改)。
我得到不同的 CRC 值。当我通过运行原始数据时,windiff
我看到了该Raw Data #1
部分的差异,我认为这是从项目的源代码生成的实际数据(如果我错了,请更正)。
有 3 个不同的领域Raw Data #1
,其中之一包括 .pdb。
问题:
- 有谁知道我可以在哪里关闭 VS 2010 中的调试信息(类似于
Project Property Pages -> Config Properties -> Linker -> Debugging -> Generate Debug Info
VS 2005) - 是否有任何技巧可以找出 WINDIFF 中突出显示的差异实际存在于源代码中的位置?
谢谢你,扎伊
PS - 随时要求澄清,并再次感谢一吨。我已经搜索了一段时间,但收效甚微。很高兴我找到了这个资源。
编辑/更新
我的转变现在已经转向使用 ngen 编译代码以绕过 MSIL 以及在那里显示为差异的任何内容。其中一个区别是在这个领域:<PrivateImplementationDetails>{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}.Dictionary
......我不能从另一个区别中的 ascii 做任何事情(我摆脱了 .pdb 信息)。
我想知道是否有办法查看/提取编译后的代码以供查看。
我已经尝试ngen display "App Name"
并搜索WINDOWS/assembly
但找不到任何相关的东西(而且,我也不知道 100% 我在寻找什么......)
谢谢你的时间,ZayJay