2012-08-09 59 views
0

可以說我有一個C#DLL是100 MB。現在如果我想更新這個DLL,據我所知我需要通過下載它來獲得另一個DLL,刪除舊的DLL,然後將它移到它的位置來「更新」DLL(讓我們假設程序集的那個引用這個DLL不關心DLL的版本)。更新DLL而不更換它?

有沒有辦法創建一個文件,使所有的類和項目已經改變(只有已經改變的東西)並重新編譯DLL以進行這些更改,或者如何使用這些更改來更新DLL?

目標是通過小補丁來更新DLL,而無需重新下載整個DLL。

謝謝

+3

一個100MB的dll?哇!!那件事到底是什麼? – adrianbanks 2012-08-09 21:52:05

+0

@adrianbanks我試圖想出一個關於一些錯誤纏身和複雜的邏輯用於簡單的MS Word功能的機智的回覆,但沒有什麼好的想到:( – Egor 2012-08-09 22:21:51

+0

我說「讓我說我有」,我不實際上有一個100 MB的DLL,這只是一個例子。 – 2012-08-10 13:28:24

回答

1

您使用相同的機制版本控制系統使用 - SVN例如興高采烈地只存儲不同的二進制簽入的變化,一些dll文件,可以把DLL MB到幾K。 (顯然你的里程可能會改變)

通常二進制差異不如文本高效,這就是爲什麼它不經常使用,但它可以爲一些工作 - 它取決於如何佈局二進制文件,如果彙編過程產生的東西通常是相同的,而不是完全不同的東西。

您需要客戶端上的一些代碼才能使用gnu patch tools或使用類似Windows BITS的東西。