2013-10-01 93 views
0

我已經使用Visual Studio安裝程序創建了我的項目的安裝程序。 我的產品會經常更新。所以我需要在一段時間內給出更新。 我可以通過更改產品代碼並保持舊的升級代碼不變來創建版本。通過保留以前版本的數據庫更新安裝程序完整安裝 - Visual Studio安裝程序

但問題是,

我有它安裝在我的應用程序文件夾(文件夾安裝)SQLite數據庫。

在我的下一個更新版本上,DB的模式可能會有一些變化。但是,即使數據庫已更新並且架構已稍微更改,最近版本也需要以前版本存儲的數據。

我的想法是在安裝下一個版本的同時備份以前的版本。一旦安裝了最新版本,修改的數據庫應該從備份文件夾中的前一個數據庫獲取數據,並且應該進行更新。 如果在安裝較新版本時出現一些異常情況,應該回滾安裝過程,並保持原有版本不變。 在這種情況下,VSI中的自定義操作可能會有所幫助。

有什麼辦法可以實現它。如果還有其他方法可以解決這個問題,我想知道它。

回答

1

所以我需要在一段時間內給出更新。更新現有應用

最好的解決辦法是使用OnceClick這是使用,你可以在更優雅的方式推送更新客戶端machaines一個微軟的技術。

一旦最新版本已安裝修改的DB應採取 從先前的DB數據在備份文件夾,並應 更新。

我同意,如果在更新過程中出現任何問題,並且您想要恢復所有內容,則必須始終採用數據庫備份。但你如何從備份數據庫獲取數據並更新新的數據庫?你打算讀取每個表中的數據並插入到新的數據庫表中嗎?

我建議你不是在應用程序更新發生時複製新的數據庫模式,而只包括delta script與更新包。此增量可能只是一列大小或數據類型變化等

你必須做的是,

  1. 就拿數據庫備份
  2. 執行現有數據庫的增量腳本,該腳本將升級數據庫到新版本。

在這種計算策略,你將擺脫許多複雜的,你將不得不處理,如果你按照你所提到的方法(複製新的數據庫,並從舊的數據庫得到的數據)

+0

非常感謝感謝您爲解決我的問題而採取的各種利益。如果你能評論我一些從以前的安裝中獲取數據庫備份的鏈接,我會很高興。我現在正在瀏覽OnceClick和Delta Script,看它是否符合我的要求。感謝您的建議:) – BinaryMee

+0

@CMB由於SqlLite數據庫是一個文件,您不需要任何compltex邏輯來備份它。只需一個File.Copy()就可以完成它:)。如果它對你有幫助,請提高答案,這將有助於他人找到相關答案。 – Kurubaran

+0

是的我知道文件複製會做到這一點。但同時安裝新版本時,我應該能夠從前一個版本複製數據庫。複製文件形成先前安裝的過程,在當前安裝部分的自定義操作中詢問。 :) – BinaryMee

相關問題