如何在 Visual Studio 2013 直接發行 Web ,並同時更新資料庫。
本文說明如何在 Visual Studio 2013 直接發行 Web ,並同時更新資料庫。為了日後可以一鍵發行,事前準備工作是值得花時間瞭解,大致分為 IIS Server 端與 VS 開發端兩個部份的環境設定。
IIS 環境設定
這是以 Windows 2008 Server R2 環境為例。IIS 必要安裝有 4 項
- IIS 記錄工具
- IIS 管理服務
- Web Deployment Tool 2.1
- Web Deploy 3.5
勾選入下圖兩項,進行安裝。
Web Deploy 工具是在 IIS 新增 Extenstion,
點擊 Web Deployment Tool 2.1、Web Deploy 3.5 新增的按鈕
VS 開發環境
設定 SQL 發行
SQL 發行主要是可以將來源資料庫(開發環境) 與目標資料庫 (QAS 或 Production),進行比對 Schema 與資料,再發行同時更新至目標資料庫。在 Web 專案 > 右鍵 > 屬性 > Package/Publish SQL,進入設定畫面。
在此可以設定新增多個 Database Entry,在設定來源與目標資料庫連線。
- 新增一個 Database Entries,名稱可以自訂。
- 輸入來源資料庫連線字串。
- 輸入目標資料庫連線字串,並選擇更新 Schema Only , Schema and Data, Data Only
選擇 Schema 會包括資料表、預存程序…等資料庫物件。 - 也可以增加其他的 SQL Script。
Web 發行設定
在 Visual Studio 2013 Web 專案可以設定多個發行設定 (Profile),在此新增一個自訂 Profile。建立 Profile
點擊專案 > 右鍵 > [Custom],輸入名稱。WEB 主機連線
設定部署目標 Server 的資訊,輸入後點擊 [Validate Connection]若有錯誤訊息,則可能要回到< IIS 環境設定> 檢查是否完成。
細部設定
選取發行的組態模,對資料庫連線設定。
- 可選擇發行時採用哪一個組態,若選擇 Debug 則會將 Web.config 與 Web.Debug.config 做合併產生 Web.config 儲存至 Server。
- 針對 Web.config 的資料連線字串調整為發行端的環境。
若想在發行過程調整資料連線字串,也可以在 Web.Debug.config / Web.Release.config 上動手。 - 選取則依上述產生至 Web.config 檔案,不選取則僅做 SQL 更新。
- 發行時是否要更新資料庫。
完成所有設定,按下最後一鍵 [Publish],若順利則會更新 Web 與 SQL。
參考資料
- How to: Deploy a Database With a Web Application Project
http://msdn.microsoft.com/en-us/library/vstudio/dd465343(v=vs.100).aspx - Installing and Configuring Web Deploy on IIS 7
http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-web-deploy - 如何使用 Visual Studio 2010 的「單鍵發行」功能 (MsDeploy)
http://blog.miniasp.com/post/2010/05/03/Deploying-Web-Application-Project-Using-One-Click-Publish.aspx