2010-04-12 110 views
3

如果您的模塊化應用程序依賴於其模塊處於獨立庫(dlls)中。DLL部署策略

什麼樣的重新 -deployment 戰略將是很好的跟隨?

該應用程序使用Visual Studio中提供的Setup Project進行安裝。

我想避免複製和粘貼的方法!

回答

2

解決複製和粘貼方法的最簡單方法是將您的應用程序部署爲smart client application。這樣你就可以把你的新DLL放在一個地方,下一次每個應用程序重新啓動時,它會下載新的程序集。

+0

這可能是我正在尋找的!謝謝,我會研究它。順便說一下,這樣,您每次都重新部署整個應用程序,還是足夠聰明,只需下載更新的程序集? – 2010-04-12 10:51:26

+0

@Filip Ekberg AFAIK它只會下載沒有時間戳(或更高版本號)的程序集。 – 2010-04-12 11:14:20

+0

太棒了,謝謝! – 2010-04-12 11:35:28

0

在一個擁有大約30個獨立模塊的大型項目中,我構建了一個小型「更新程序」應用程序,它是一個由Windows窗體和大約3個代碼文件組成的小應用程序。我使用.NET的ClickOnce技術將它部署到客戶端。每當我必須「更新更新程序」(這是兩年一次)時,我只是推送了一個新的ClickOnce清單,客戶端在下次登錄時纔得到它。

更新程序在運行時下載了XML清單從包含構成完整應用程序的二進制文件和庫的列表的部署服務器,以及每個二進制文件的日期/時間和大小。然後,它將這些文件與本地文件系統進行比較,以確定需要更新哪些文件,並將它們拉下來。

然後,它將清單上的文件列表與本地文件系統進行比較,刪除所有本不應該出現的文件,並執行主應用程序的可執行文件。

這種方法對我們非常有用,因爲我還在主應用程序中使用了相同的邏輯在後臺進行更新,所以用戶可以在建議安裝新更新時重新啓動應用程序。

+0

謝謝,但我認爲除編寫我們自己的應用程序還有其他很好的方法。然而,這是一個後備計劃! – 2010-04-12 10:51:52

+0

只是看了一下klausbyskov的答案中的鏈接,這幾乎是我的更新程序做的!不知道它存在於.NET中 - ClickOnce的到來似乎掩蓋了其他選項。這看起來像.NET的「隱藏的寶石」 - 我確信其中的一個:) – 2010-04-12 11:00:30