2013-03-27 93 views
0

我完成了我的c#單擊一次應用程序,所以我發佈了它。 它的問題是,我使用一個小的SQLite數據庫來保存設置和很多其他小東西,每當我更新我的應用程序時,它們將被新的SQLite數據庫覆蓋。更新時防止覆蓋數據庫ClickOnce應用程序

數據庫中有如下設置:記住密碼和記住用戶名,還有一個計數器,記錄應用程序啓動的次數。所有這些都將丟失,用戶將不得不再次填寫他的用戶名和密碼,即使他選中了要記住的框,因爲數據庫將被覆蓋。

問題:如何防止SQLite數據庫在我的Click Once應用程序中被覆蓋?

+0

Clickonce升級客戶機中的應用程序,它如何更新數據庫?此數據庫服務器位於何處? – Sandeep 2013-03-27 08:14:37

+0

數據庫位於項目文件夾中,它不在服務器上,因爲它不需要。所以我從我的項目中的Visual Studio更新數據庫,然後按發佈。 – Max 2013-03-27 08:15:23

+1

這可能會有所幫助。 http://stackoverflow.com/questions/3597296/updating-local-sql-server-databases-with-clickonce-deployment – Sandeep 2013-03-27 08:25:50

回答

0

你應該有一個「模板」數據庫,它將始終覆蓋並創建數據庫,其數據在安裝新版本應用程序後不會覆蓋。

如果在啓動應用程序時不存在帶數據的數據庫,則應該創建數據庫。

+0

數據庫在不存在時被創建,因爲應用程序將檢查它是否存在是或否,但是如果有數據庫,它將被刪除,因爲Clickonce會刪除所有內容並將新發佈置於原地。 – Max 2013-03-27 10:16:45

+0

通常,安裝文件夾應該是靜態的(即使它是AppData)。您可以使用MyDocuments或AppData的子文件夾作爲DB的佔位符。 – Rover 2013-03-27 12:44:50

相關問題