2008-11-26 168 views
4

我需要比較VS2005的版本輸出以確保我可以重現完全相同的產品。比較版本中產品版本

當我做兩個版本一個接一個地在釋放後,比較所產生的文件,我得到不同的文件,做文本比較,似乎不僅僅是日期時間是不同的

我怎樣才能建立以重現每次都完全一樣的產品?

回答

7

只要構建,編譯器嵌入:

  • 的日期和時間
  • 一個GUID(用於調試等等,我相信)
  • 潛在的組件版本(其可具有 「1.2.3。*」 和自動填充)
  • 潛在強大的散列

幾個選項:

  • 瞭解了文件的「已知immaterially不同」,擦拭這些字節,然後比較
  • 使用ILDASM的組件轉換爲文本,然後比較這些結果。 (我沒有檢查這是否也揭示了差異 - 它可能會,在這種情況下,你也不得不明確地忽略某些部分)

這個問題每隔一段時間都會彈出,所以我我會看看我是否可以拿出一個工具來進行比較 - 儘管它不太可能處理已簽署的程序集,因爲簽名的位置可能會有很大差異。

0

一個問題:你做了文字二元構建輸出的比較? 據我所知,大多數編譯器從不爲同一個項目生成二進制相同的編譯輸出。編譯器編碼成彙編,特殊序等的二進制時間

0

實際上,您可以使用DumpBin對忽略每個構建版本變體的不同構建進行二進制比較。請參閱How to compare binary images of the same project builds。這篇文章說它只適用於Visual Studio 6,所以我不確定它可以在2005或更高版本上運行。

+0

在VS 2010中,存在dumpbin工具,但在後續的兩個生成的dll上運行它無數的差異。 – 2015-03-25 18:11:40