2010-12-02 78 views
1

在我目前的客戶端,我們使用CruiseControl.Net進行持續集成。我們正在使用MSBuild構建網站項目。使用MSBuild或CCNet進行圖像/文件的二進制比較

我遇到的問題如下:我們希望在每個發行版中移動所有代碼和關聯的DLL。但是,我們也有(有時)數百個大小不變的文件和圖像。在CC.Net世界中,我可能會將它們分成兩個不同的版本,一個用於網站,另一個用於靜態內容。

我想知道的是,如果有人知道MSBuild或CCNet插件可以讓我在靜態內容上執行二進制比較嗎?我希望能夠知道圖像是否已添加或已添加,然後將僅包含已更改/添加的內容並將其推送到QA環境。

回答

0

我用svn日誌和MsBuild任務做到了這一點。

每次我部署網站時,我都會在某處保存修訂號(基本上是在一個平面文件中)。 然後在下一個Build-Deploy中,我會做一個svn日誌來查看最新版本和現在之間的區別。然後,我的MsBuild Task接受svn log xml輸出,解析它並在另一個文件中輸出添加/修改/刪除的感興趣的靜態文件。 然後通常的任務進來,只處理修改的文件,而不是每個文件。

這是一項巨大的工作(首先是內部邏輯:我們的「靜態」內容是針對每個環境,每個合作伙伴和每個主題動態生成的),但這是值得的。

無論哪種方式,你可以嘗試使用ChecksumCopy,但我不知道它是否便宜...