如何在 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
![image image](http://lh5.ggpht.com/-2947HoYjSWA/U6JoSC2iuUI/AAAAAAAAKK8/LI6KbQ3IknQ/image_thumb%25255B5%25255D.png?imgmax=800)
勾選入下圖兩項,進行安裝。
![image image](http://lh3.ggpht.com/-hSMZIF1QMlA/U6I4-cVbn6I/AAAAAAAAKKU/WWfIpbf4mO8/image_thumb%25255B2%25255D.png?imgmax=800)
Web Deploy 工具是在 IIS 新增 Extenstion,
![image image](http://lh4.ggpht.com/-AG-OucltAJs/U6JoUUaUaYI/AAAAAAAAKLM/3l7KLTM4bKI/image_thumb%25255B8%25255D.png?imgmax=800)
點擊 Web Deployment Tool 2.1、Web Deploy 3.5 新增的按鈕
![image image](http://lh3.ggpht.com/-4V6ZvcfL6zo/U6JoWieKEzI/AAAAAAAAKLc/CeL8IT9Ir2M/image_thumb%25255B10%25255D.png?imgmax=800)
VS 開發環境
設定 SQL 發行
SQL 發行主要是可以將來源資料庫(開發環境) 與目標資料庫 (QAS 或 Production),進行比對 Schema 與資料,再發行同時更新至目標資料庫。在 Web 專案 > 右鍵 > 屬性 > Package/Publish SQL,進入設定畫面。
在此可以設定新增多個 Database Entry,在設定來源與目標資料庫連線。
![image image](http://lh6.ggpht.com/-_VXbSYicrKs/U6JoZloV66I/AAAAAAAAKLs/DvmGseyrTIA/image_thumb%25255B25%25255D.png?imgmax=800)
- 新增一個 Database Entries,名稱可以自訂。
- 輸入來源資料庫連線字串。
- 輸入目標資料庫連線字串,並選擇更新 Schema Only , Schema and Data, Data Only
選擇 Schema 會包括資料表、預存程序…等資料庫物件。 - 也可以增加其他的 SQL Script。
Web 發行設定
在 Visual Studio 2013 Web 專案可以設定多個發行設定 (Profile),在此新增一個自訂 Profile。建立 Profile
點擊專案 > 右鍵 > [Custom],輸入名稱。![image image](http://lh4.ggpht.com/-eu1mc95y7Yg/U6Joc1haEKI/AAAAAAAAKL8/x1vg10j2TbQ/image_thumb%25255B18%25255D.png?imgmax=800)
WEB 主機連線
設定部署目標 Server 的資訊,輸入後點擊 [Validate Connection]![image image](http://lh3.ggpht.com/-cjthVkA9fkw/U6Joe27JzJI/AAAAAAAAKMM/v91m0wq33V0/image_thumb%25255B27%25255D.png?imgmax=800)
若有錯誤訊息,則可能要回到< IIS 環境設定> 檢查是否完成。
細部設定
選取發行的組態模,對資料庫連線設定。
![image image](http://lh3.ggpht.com/-_g6vQ6U8SBw/U6Jog3XZPAI/AAAAAAAAKMc/YfWH53HprHg/image_thumb%25255B23%25255D.png?imgmax=800)
- 可選擇發行時採用哪一個組態,若選擇 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