1

我有一個非常簡單的C#Winforms項目,我使用Visual Studio 2010.它使用SQL Express 2008.這是我第一次使用SQL,所以我想要一個動手方法來學習SQL,這個項目讓我去做。如何分發SQL Server應用程序?

我想在我的網站上發佈我的項目供人們看。但是,我在第一次運行程序時需要設置存儲過程,約束和其他內容(例如,要在每個表中放置哪些列)。

我被告知可以使用VS2010的內置功能來完成MSI安裝程序,但事實證明這非常複雜,我很快放棄了它。

對我而言,理想的解決方案是簡單地壓縮可執行文件並讓它自動創建數據庫,表格,列,存儲過程和其他所有代碼。這看起來很原始,但看起來簡單而直接。唯一的是,我不知道這是否可能。

我對SO社區的問題是你會推薦什麼?請記住,我不希望分發模型超過我的應用程序本身的複雜性,正如我所說的,這是一個非常簡單的投資組合類型項目。此外,如果您可以提供有關如何處理您的建議的示例和/或說明,那也非常感謝。

在此先感謝!

回答

1

作爲一種簡單的解決方案,您可以腳本化數據庫並將腳本文件包含在項目中(作爲資源或作爲單獨的文件)。啓動時,應用程序將檢查數據庫是否存在,如果不存在,則運行該腳本。
當然,這意味着SQL Server本身已經安裝(或以某種方式與您的應用程序捆綁在一起)。

UPD。 創建腳本最簡單的方法是從Management Studio中的腳本生成嚮導(右鍵單擊數據庫,任務 - >生成腳本)。我希望這個嚮導在Express版本中可用。

有關從.NET代碼執行腳本的示例,請參閱ths thread

0

你可能想看看Visual Studio database projects

它們將幫助跟蹤數據庫中的所有對象,並使deployment相當容易,而不需要用自己的代碼創建數據庫和數據庫對象。