我需要比较VS2005的构建输出,以确保我可以重现完全相同的产品.
当我在发布中一个接一个地做两个构建并比较生成的文件我得到不同的文件,做文本比较似乎不仅仅是日期时间不同
我如何构建以便每次都能重现完全相同的产品?
无论何时构建,编译器都嵌入:
日期和时间
一个GUID(用于调试等,我相信)
可能是汇编版本(可能有"1.2.3.*"并自动填充)
可能是一个强大的哈希
有两种选择:
找出文件"无关紧要地知道"的位置,擦除这些字节,然后进行比较
使用ildasm将程序集转换为文本,然后比较这些结果.(我没有检查这是否也揭示了差异 - 它可能会这样做,在这种情况下你又必须明确地忽略某些部分)
这个问题确实经常出现,所以我会看看我是否可以提出一个工具来进行比较 - 尽管它不太可能应对签名的程序集,因为签名的位置可能会有很大差异.