自從第一次引入這些項目以來,我們一直在爲幾個內部或單個客戶項目使用Visual Studio 2010的數據庫項目,到目前爲止他們對我們的工作非常好。現在我們第一次使用它們,需要打包安裝在任意客戶站點的「盒裝」產品。在沒有VSDBCMD的情況下部署VS2010數據庫項目?
到目前爲止我看到的所有內容都表明,我將.dbschema
文件加上vsdbcmd
工具及其要求作爲我的MSI的一部分發送,然後在安裝過程中啓動該工具。
這真的是最簡單的方法來完成這項任務?我們正在爲我們的初始測試版測試做這件事,但到目前爲止,它似乎是一個快速入侵,而不是一個好的長期部署策略。特別是,我們不得不安裝都的SQL Server CE 32位和SQL Server CE的64位在機器上安裝我們的軟件之前。每次嘗試打包我們在MSI中需要的東西都失敗了,因爲我們錯過了一個或另一個架構的程序集。
我們研究的另一件事是運輸輸出sqlcmd
文件,這些文件是在構建時「部署」項目時生成的,但這些文件包括我們內部開發服務器的硬編碼服務器名稱(而不是SQLCMD像數據庫名稱這樣的變量),這意味着我們必須在服務器安裝期間編輯.sql腳本。再說一遍,但它總的來說似乎是一個糟糕的主意。
我們的最後一種方法,以及如果我不能提出一些問題,我們最終可能會爲生產做的事情是,根據部署輸出手動生成創建和升級腳本,然後將自定義工具與我們的安裝程序根據用戶交互執行腳本(通過SqlClient
或sqlcmd
或類似的東西),但這似乎損害了數據庫項目的許多目的。
還有沒有其他的方法來建立和包裝的自動化部署VS2010 DB項目,到不同的服務器,不涉及安裝2個版本的SQL CE和送貨與我們安裝了一塊的Visual Studio?
嗨邁克爾!無論如何,我的回答有幫助嗎? –
很好,我們已經斷定數據庫項目不是爲外部部署而構建的。 –