2012-05-03 277 views
3

自從第一次引入這些項目以來,我們一直在爲幾個內部或單個客戶項目使用Visual Studio 2010的數據庫項目,到目前爲止他們對我們的工作非常好。現在我們第一次使用它們,需要打包安裝在任意客戶站點的「盒裝」產品。在沒有VSDBCMD的情況下部署VS2010數據庫項目?

到目前爲止我看到的所有內容都表明,我將.dbschema文件加上vsdbcmd工具及其要求作爲我的MSI的一部分發送,然後在安裝過程中啓動該工具。

這真的是最簡單的方法來完成這項任務?我們正在爲我們的初始測試版測試做這件事,但到目前爲止,它似乎是一個快速入侵,而不是一個好的長期部署策略。特別是,我們不得不安裝的SQL Server CE 32位和SQL Server CE的64位在機器上安裝我們的軟件之前。每次嘗試打包我們在MSI中需要的東西都失敗了,因爲我們錯過了一個或另一個架構的程序集。

我們研究的另一件事是運輸輸出sqlcmd文件,這些文件是在構建時「部署」項目時生成的,但這些文件包括我們內部開發服務器的硬編碼服務器名稱(而不是SQLCMD像數據庫名稱這樣的變量),這意味着我們必須在服務器安裝期間編輯.sql腳本。再說一遍,但它總的來說似乎是一個糟糕的主意。

我們的最後一種方法,以及如果我不能提出一些問題,我們最終可能會爲生產做的事情是,根據部署輸出手動生成創建和升級腳本,然後將自定義工具與我們的安裝程序根據用戶交互執行腳本(通過SqlClientsqlcmd或類似的東西),但這似乎損害了數據庫項目的許多目的。

還有沒有其他的方法來建立和包裝的自動化部署VS2010 DB項目,到不同的服務器,不涉及安裝2個版本的SQL CE和送貨與我們安裝了一塊的Visual Studio?

+0

嗨邁克爾!無論如何,我的回答有幫助嗎? –

+0

很好,我們已經斷定數據庫項目不是爲外部部署而構建的。 –

回答

1

據我所知,你有什麼建議最初可能是最好的。

微軟似乎從一開始就知道這一點,因爲他們建議,並就如何構建服務器上安裝vsdbcmd,而無需Visual Studio的說明。您可以輕鬆地將此思路擴展到在Customers網站上進行安裝。

雖然你可以拿出你自己創建的輸出文件和他們做一些後期的構建過程的方法,你剛剛移動的複雜性在其他地方創造的代碼,另一位需要維護。

的SQL CE的安裝程序是沒有那麼大,並使其成爲您的MSI的一部分,使事情變得簡單,打包在一起,確保您得到最大的功能從數據庫項目。

我回答了類似的問題,這並鏈接到相關的MS文章,在這太問題:
Can I do database deployments, without installing Visual Studio or VSTSDB?

+0

確實如此,SQL CE安裝程序並不那麼大,但很難向客戶的IT部門證明我們爲什麼需要爲一個應用程序安裝* 3 *版本的SQL。但它基本上看起來像沒有好的方法來做到這一點,所以這是我會得到的最好的答案。 –

相關問題