1

我回来尝试比较两个 .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。

问题:

  1. 有谁知道我可以在哪里关闭 VS 2010 中的调试信息(类似于Project Property Pages -> Config Properties -> Linker -> Debugging -> Generate Debug InfoVS 2005)
  2. 是否有任何技巧可以找出 WINDIFF 中突出显示的差异实际存在于源代码中的位置?

谢谢你,扎伊

PS - 随时要求澄清,并再次感谢一吨。我已经搜索了一段时间,但收效甚微。很高兴我找到了这个资源。

编辑/更新 我的转变现在已经转向使用 ngen 编译代码以绕过 MSIL 以及在那里显示为差异的任何内容。其中一个区别是在这个领域:<PrivateImplementationDetails>{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}.Dictionary......我不能从另一个区别中的 ascii 做任何事情(我摆脱了 .pdb 信息)。

我想知道是否有办法查看/提取编译后的代码以供查看。

我已经尝试ngen display "App Name"并搜索WINDOWS/assembly但找不到任何相关的东西(而且,我也不知道 100% 我在寻找什么......)

谢谢你的时间,ZayJay

4

1 回答 1

1

有一些工具可以用来区分程序集, Scott hanselman在他的博客中列出了其中的一些。

这个问题还有几个

于 2011-05-16T20:44:44.150 回答