2011年10月7日 星期五

ASP.NET 程式佈署解決方案 - ASP.NET Deploy Solution

現有的Visual Studio 2010已經整合了Web Deploy (Web Deployment Tool)工具,大體來說在佈署上解決了不少佈署上的困擾,不過總覺得每次都一大包的把所有東西重新佈署一次,實在是有點麻煩.

因此根據了一些簡單的需求,設計了一個可以將功能分散在不同壓縮檔的佈署方式,以下就介紹這個解決方案:

1. 假設現在要開發一個新的功能,新增一個專案選擇Visual C# -> Likol -> Web Feature,並命名為ProductFeature


此專案範本是由空的ASP.NET網站範本修改而來,並加入一個source.webfeature檔案與修改了建置專案的細節.

2. 我在專案中加入了一個Product的目錄,並新增了ListForm NewForm EditForm三個ASPX程式,也就是要用來進行佈署的程式.


3. 選擇source.webfeature並開啟檔案,即可看到佈署的設定界面.


上面的四個欄位就是佈署時的一些資訊,比較重要的是下面的兩個部份
I. Assemblies 代表所要包含的組件檔
II. Files 表示要加入的ASPX或是ASCX的檔案

4. 選擇Add Assembly,於跳出的視窗中選擇Output並確定.


這個動作將會在Assemblies加入一筆資料,並標示Type為Output,也就是會把這個專案編譯出來的組件(DLL)加入佈署中.



5. 另外,當然也可以額外指定其他的組件(DLL)檔案,加入佈署.




6. 選完組件後,就是透過Add File來選擇要加入的檔案,在選擇的視窗中僅可以選擇在專案中的檔案


如果檔案已經加入,則不會顯示出來




7. 設定完成後,直接執行Visual Studio的建置專案,建置完成後,就可以在專案的目錄中找到"_WebFeature"的目錄,裡面以GUID為檔名的檔案就是要進行佈署的檔案.


可以看到剛剛所選擇的檔案都有包含在內.


8. 在佈署的部份,目前是先用一個簡單的Web程式進行佈署,將上述產生的佈署檔案,透過一支ASPX上傳,就可以將相關組件與檔案佈署至Web Application中.




為了整個解決方案可以很容易並順暢,因此在與Visual Studio整合上花了不少時間,主要的部份也就是:

A. Visual Studio 2010 自訂編輯器 - Custom Editor
B. Visual Studio 2010 自訂建置工作項目 - Custom MSBuild Task

實做了這兩項功能,整個流程就大大的不一樣了.

沒有留言:

張貼留言