2010-11-11 57 views
3

如果我們給用戶設置,那麼就有可能在我們給用戶的設置代碼中發生變化,然後我們必須重新設置,然後我們將不得不設置爲用戶,那麼這不是問題,但用戶必須卸載該設置並且必須再次安裝新設置,那麼問題是否還有其他選項?正在更新安裝

我在問這個問題,因爲在應用程序中只有一個dll的應用程序中有變化的機會,那麼是否有任何其他選項,我們在該dll中進行更改,並提供給用戶和用戶只更新該DLL,而不必卸載整個安裝程序並重新安裝整個安裝程序?

回答

2

.net dll不需要註冊,爲什麼你不做一個小的更新程序,只需要替換更新後的dll。無需卸載並重新安裝。

+0

中,那麼它會正常運行應用程序,因爲我想想這是否可能,那麼這是最好的主意? – Harikrishna 2010-11-11 12:56:03

+0

只要新的DLL不會導致衝突,沒有理由不應該工作。我已經使用部署的網絡應用程序(與桌面有點不同)做到了這一點,並且工作正常。 – Sruly 2010-11-11 16:29:22

2

如果我正確理解您的問題,您需要爲基於.NET的應用程序提供更好的部署解決方案 ?

在這種情況下,我建議你看看ClickOnce。 Visual Studio具有開箱即用的ClickOnce支持。

基本上,您可以通過某些介質(例如通過互聯網, )部署應用程序,每當您推送新更新時,客戶都可以選擇自動升級,甚至可以在後臺更新軟件。

如果您不想使用ClickOnce,另一個選項是使用MEF。 這將允許您使用所謂的附加組件擴展您的應用程序。 這些加載項基本上是在運行時從程序集加載的類。這意味着您可以使用特定程序集版本1.0運行的應用程序,甚至在應用程序運行時用戶可以替換程序集並且軟件將啓動至今。

因此,無論您是使用clickonce自動更新整個應用程序,還是將應用程序分成較小的部分,使用MEF加載這些部分,並安裝一個簡單地替換目標系統上的部分的安裝程序。

+0

但是MEF不能在4.0中使用,是嗎? – Harikrishna 2010-11-11 13:00:16

+0

如果用戶將更新我們提供的新DLL,MEF可以在3.5(單獨下載)中使用,並且它默認包含在4.0(System.ComponentModel.Composition。*) – TimothyP 2010-11-11 16:14:49

0

當我們運行我們的應用程序時,會出現一個登錄窗口,其中有效用戶必須提供他的憑據才能進入(舊東西!)。當他們把它們放入並且在成功註冊後,我們啓動發送客戶端應用程序元(請求版本,操作系統等)的web service請求。該Web服務託管在我們的域中。該Web服務觸發了一個默認函數,在該函數中,它向數據庫查詢以獲取系統最新(或穩定)版本的信息,然後將其與來自客戶端應用程序的信息進行比較,併發送回比較結果。接收數據是一個比特值,屬於消息窗口的情況,就像這是一個老版本的客戶端應用程序彈出一個窗口允許下載更新版本的應用程序(或者更新的版本可用但與您的操作不兼容系統等)

我們在成功註冊(如許可證密鑰驗證)方面做了更多的工作。爲什麼在成功註冊後導致只有有效的用戶有權阻止我們的web service