2011-07-15 19 views
0

我打算部署一個應用程序點擊一次,並想知道什麼是處理數據庫的最佳技術,因爲點擊一次安裝sqlserver給我我想知道我是如何確定安裝的sqlserver,當應用程序第一次運行時,請查看它並創建sqlserver數據庫。發現在計算機上安裝的sqlserver

我不會使用Windows安裝來分發此應用程序,因爲它將具有多個版本的更新,並且使用clickonce會更容易。

回答

0

你正在使用哪種SQLServer?這裏有一些有用的信息。

如果是SQLServer Express,則需要將數據庫添加到項目中,並將生成操作設置爲'content'並將'copy to output directory'設置爲'copy if newer'。這將確保數據庫包含在部署中。

接下來,進入先決條件對話框並選擇SQLServer Express。當用戶運行setup.exe時,它將檢查並查看它是否已安裝,如果沒有,將安裝它。

如果您需要最新版本的SQLServer Express,您可以找到如何創建引導程序包here - Microsoft不提供一個,但本文提供您需要的XML並提供到SQLServer Express下載的鏈接。

如果您正在使用SQLCE,則需要將數據庫(* .sdf)附加到您的項目並設置如上所述的屬性。但是,您不需要將此發佈作爲先決條件,您可以將dll包含在您的項目中,如here所述。

當您發佈一個新版本時,如果數據庫發生了變化,ClickOnce會將新數據庫置於DataDirectory中,並將舊數據庫置於DataDirectory的\ pre子文件夾中,並且您必須編寫代碼來處理該數據庫。這聽起來很吸引人,但我認爲這很危險。如果您甚至打開數據庫來查看結構,它會更改日期/時間戳,ClickOnce會認爲它是新的併發布它,並且您將收到客戶關於其數據缺失的電話,除非您處理這個。

因此,我通常建議您在用戶首次安裝應用程序時將數據庫複製到LocalApplicationData,然後以編程方式處理結構的任何更新。有一篇關於如何去做的文章here

相關問題