识别/删除相同build.NET exe';s

识别/删除相同build.NET exe';s,.net,visual-studio-2010,binary-reproducibility,.net,Visual Studio 2010,Binary Reproducibility,我再次尝试比较两个.exe,这次做了一些更改 在Microsoft Visual Studio 2010中构建项目 项目目标框架=.NET framework 3.5客户端配置文件 我构建项目,在.exe上运行dumpbin/rawdata,并输出到文本文件。 接下来,我重新构建项目,在新的.exe上运行dumpbin/rawdata,并输出到新的文本文件。然后我对每一个进行CRC,以确保它们是相同的(在构建之间不进行任何更改) 我得到了不同的CRC值。当我通过windiff运行原始数据时,

我再次尝试比较两个.exe,这次做了一些更改

  • 在Microsoft Visual Studio 2010中构建项目
  • 项目目标框架=.NET framework 3.5客户端配置文件
我构建项目,在.exe上运行
dumpbin/rawdata
,并输出到文本文件。 接下来,我重新构建项目,在新的.exe上运行
dumpbin/rawdata
,并输出到新的文本文件。然后我对每一个进行CRC,以确保它们是相同的(在构建之间不进行任何更改)

我得到了不同的CRC值。当我通过
windiff
运行原始数据时,我看到
rawdata#1
部分存在差异,我认为这是从项目源代码生成的实际数据(如果我错了,请更正)

原始数据#1
中有三个不同的区域,其中一个包括.pdb

问题:

  • 有人知道在VS 2010中我可以在哪里关闭调试信息吗(类似于VS 2005中的
    项目属性页->配置属性->链接器->调试->生成调试信息)
  • 找出WINDIFF中突出显示的差异在源代码中实际存在的地方有什么诀窍吗
  • 谢谢,, 扎杰

    PS-请随时要求澄清,再次感谢。我搜索了一段时间,几乎没有成功。很高兴我找到了这个资源

    编辑/更新 现在,我的工作转向使用ngen编译代码,以绕过MSIL和任何显示为差异的内容。其中一个区别是在这方面:
    {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX}。字典
    。。。在另一个区别中,我不能从ascii中做任何事情(我去掉了.pdb信息)

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

    我尝试了
    ngen显示“App Name”
    并在
    WINDOWS/assembly
    中搜索,但找不到任何相关内容(此外,我也不知道100%要找什么…)

    谢谢你抽出时间,
    ZayJay

    有两种工具用于扩散装配, 在他的博客中列出了其中的一些


    还有一些

    有两个工具用于扩散装配, 在他的博客中列出了其中的一些


    还有一些

    我认为程序集中有时间戳,这可能是造成差异的原因。谢谢,你知道是否有多个时间戳吗?因为我得到了3个不同的区域,我希望它们是相同的.exe(其中一个看起来像是ascii中的.pdb)。或者通过项目设置关闭时间戳的方法?是的,有多个时间戳的模糊记忆,但由于它们模糊,它们可能是错误的。我也可能完全错误地认为一开始就有时间戳。您是否验证了每次更改都在同一个位置且大小相同?还要注意,我知道以前有人问过这个问题,一般的共识是,如果不需要重新生成代码,则不必处理更改的程序集,这显然是交易的一部分。请允许我问一下,为什么需要重建为完全相同,而不是在代码未更改的情况下不重建?我正在为一家公司验证软件,测试确认Visual Studio 2010将反复生成.exe,并且可以预测。因此,我想从源构建一个.exe,保存原始数据,然后再创建另一个.exe并验证它们是“相同的”。我已经使用它。exe是用C++构建的,但是在这里有麻烦。此外,差异是相同的,根据我启用的项目设置(摆弄它们以尝试修复差异)在程序集中有时间戳,这可能会导致差异。谢谢,你知道是否有多个时间戳吗?因为我得到了3个不同的区域,我希望它们是相同的.exe(其中一个看起来像是ascii中的.pdb)。或者通过项目设置关闭时间戳的方法?是的,有多个时间戳的模糊记忆,但由于它们模糊,它们可能是错误的。我也可能完全错误地认为一开始就有时间戳。您是否验证了每次更改都在同一个位置且大小相同?还要注意,我知道以前有人问过这个问题,一般的共识是,如果不需要重新生成代码,则不必处理更改的程序集,这显然是交易的一部分。请允许我问一下,为什么需要重建为完全相同,而不是在代码未更改的情况下不重建?我正在为一家公司验证软件,测试确认Visual Studio 2010将反复生成.exe,并且可以预测。因此,我想从源构建一个.exe,保存原始数据,然后再创建另一个.exe并验证它们是“相同的”。我已经使用它。exe是用C++构建的,但是在这里有麻烦。另外,不同之处是相同的,根据我启用的项目设置(摆弄它们以尝试修复不同之处)给出或获取几行代码。谢谢--我坚持使用Windows工具以避免进一步的软件验证,并尝试使用
    ildasm
    ilasm
    工具。检查
    ildasm
    输出的差异可以消除除
    的GUID之外的所有差异。这是一个可重复的值还是在构建时随机生成的值?我目前正在研究更多,但我已经到了一个地步,我可能不得不放弃这一点,继续前进…不确定,但我发现。看看你似乎无法控制它:/谢谢——我坚持使用Windows工具来避免进一步的错误