使用 Visual Studio 部署您的網站 (C#)

作者 :Scott Mitchell

下載 PDF

Visual Studio 包含部署網站的工具。 在本教學課程中深入了解這些工具。

簡介

上一個教學課程探討如何將簡單的 ASP.NET Web 應用程式部署至 Web 主機提供者。 具體而言,本教學課程示範如何使用 FileZilla 之類的 FTP 用戶端,將必要的檔案從開發環境傳輸到生產環境。 Visual Studio 也提供內建工具,可協助部署至 Web 主機提供者。 本教學課程會檢查下列兩個工具:複製網站工具,您可以在其中使用 FTP 或 FrontPage Server Extensions 從遠端網頁伺服器來回移動檔案;和 [發佈] 工具,可將整個網站複製到指定的位置。

注意

Visual Studio 所提供的另一個部署相關工具是 Web 安裝程式專案 載入宏。 Web 安裝程式專案會將網站的內容和組態資訊封裝成單一 MSI 檔案。 此選項最適用於在內部網路內部署的網站,或銷售客戶安裝在自己的網頁伺服器上之預先封裝 Web 應用程式的公司。 Web 部署專案 Add-In 是 Visual Studio Add-In,可協助指定開發環境與生產環境組建之間的設定差異。 本教學課程系列不會討論 Web 安裝程序專案;Web 部署專案摘要說明 開發與生產環境之間的常見設定差異 教學課程。

使用複製網站工具部署您的網站

Visual Studio 的複製網站工具與獨立 FTP 用戶端的功能類似。 簡單地說,複製網站工具可讓您透過FTP或 FrontPage Server Extensions 連線到遠端網站。 與 FileZilla 的使用者介面類似,複製網站使用者介面包含兩個窗格:左窗格會列出本機檔案,而右窗格則會列出目的地伺服器上的這些檔案。

注意

複製網站工具僅適用於網站專案。 當您使用 Web 應用程式專案時,Visual Studio 會提供此工具。

讓我們看看如何使用複製網站工具來將書籍檢閱應用程式發佈至生產環境。 因為複製網站工具只適用於使用網站專案模型的專案,所以我們只能檢查搭配 BookReviewsWSP 專案使用此工具。 開啟該專案。

點擊 [複製網站] 工具專案中的 [複製網站] 圖示,以啟動複製網站工具專案,方案總管 (此圖示在圖 1) 中圓圈;或者,您可以從 [網站] 選單選取 [複製網站] 選項。 任一種方法都啟動圖 1 所示的複製網站用戶介面;只有圖 1 中的左窗格會填入,因為我們尚未連線到遠端伺服器。

複製網站工具的使用者介面分成兩個窗格

圖 1:複製網站工具的使用者介面分成兩個窗格, (按兩下即可檢視完整大小的影像)

若要部署網站,我們必須先連線到 Web 主機提供者。 按下複製網站使用者介面頂端的 [連線] 按鈕。 這會顯示圖 2 所示的 [開啟網站] 對話框。

您可以從左側選取四個選項之一來連線到目的地網站:

  • 檔案系統 - 選取此選項,即可將月臺部署至可從計算機存取的資料夾或網路共用。
  • 本機 IIS - 使用此選項,將月臺部署至電腦上安裝的 IIS 網頁伺服器。
  • FTP 網站 - 使用 FTP 連線到遠端網站。
  • 遠端站 臺 - 使用 FrontPage Server Extensions 連線到遠端網站。

大部分的Web主機提供者都支援FTP,但較少提供 FrontPage Server Extension 支援。 基於這個理由,我已選取 [FTP 月臺] 選項,然後輸入連線資訊,如圖 2 所示。

[開啟網站] 對話框的螢幕快照,其中顯示連線資訊已填入文字字段。

圖 2:指定目的地網站 (按下即可檢視完整大小的影像)

線上之後,複製網站工具會在右窗格中的遠端月臺載入檔案,並指出每個檔案的狀態:新增、刪除、變更或未變更。 您可以將檔案從本機月臺複製到遠端月臺,反之亦然。

讓我們將新頁面新增至 BookReviewsWSP 專案,然後加以部署,讓我們可以看到複製網站工具的運作情形。 在名為 Privacy.aspx的根目錄中,於 Visual Studio 中建立新的 ASP.NET 頁面。 讓頁面使用主版頁面 Site.master ,並將網站的隱私策略新增至此頁面。 圖 3 顯示此頁面建立之後的 Visual Studio。

將新頁面具名<代碼Privacy.aspx</程序代碼>>新增至網站的根資料夾

圖 3:將名為 Privacy.aspx 的新頁面新增至網站的根資料夾, (按兩下即可檢視完整大小的影像)

接下來,返回複製網站用戶介面。 如圖 4 所示,左窗格現在包含新的檔案 - Policy.aspxPolicy.aspx.cs。 更重要的是,這些檔案會以箭號圖示和 [新狀態] 標示,指出它們存在於本機網站上,而不是在遠端網站上。

複製網站工具在其左窗格中包含新的 <程式碼>Privacy.aspx</代碼> 頁

圖 4:複製網站工具在其左窗格中包含新 Privacy.aspx 頁面 (按兩下即可檢視完整大小的影像)

若要部署新檔案,請加以選取,然後按下箭號圖示將它們傳輸到遠端月臺。 傳輸完成後, Policy.aspx 本機和遠端站臺上都存在狀態為 [未變更] 的 和 Policy.aspx.cs 檔案。

除了列出新檔案之外,複製網站工具也會醒目提示本機和遠端網站之間任何不同檔案。 若要查看運作情形,請返回 Privacy.aspx 頁面,再將一些字新增至隱私策略。 儲存頁面,然後返回複製網站工具。 如圖 5 所示,左窗格中的頁面狀態為 [已變更], Privacy.aspx 表示它與遠端月臺不同步。

複製網站工具指出 <程式碼>Privacy.aspx</代碼> 頁已變更

圖 5:複製網站工具指出 Privacy.aspx 頁面已變更, (按兩下即可檢視完整大小的影像)

複製網站工具也會指出自上次複製作業之後是否已刪除檔案。 Privacy.aspx從本機專案刪除 ,然後重新整理複製網站工具。 Privacy.aspxPrivacy.aspx.cs 檔案會保留在左窗格中,但具有 [已刪除] 狀態,指出自上次複製作業之後已移除這些檔案。

發佈 Web 應用程式

從 Visual Studio 內部署 Web 應用程式的另一種方式是使用 [發佈] 選項,可透過 [建置] 功能表存取。 [發佈] 選項會明確編譯應用程式,然後將所有必要的檔案複製到指定的遠端月臺。 如我們稍後所見,[發佈] 選項比複製網站工具更模糊。 雖然複製網站工具可讓您檢查本機和遠端網站上的檔案,並可讓您視需要上傳或下載個別檔案,但 [發佈] 選項會部署整個 Web 應用程式。

除了將所有必要的檔案複製到指定的遠端月臺之外,[發佈] 選項也會明確編譯應用程式。 假設 Web 應用程式項目必須明確編譯,它應該不會意外地顯示 [發佈] 選項可供 Web 應用程式專案使用。 可能有點令人意外的是,[發佈] 選項也適用於網站專案。 如 決定需要部署哪些檔案 教學課程所述,網站專案可以透過稱為 預先編譯的程式明確編譯。 本教學課程著重於搭配 Web 應用程式專案使用 [發佈] 選項;未來的教學課程將探索預先編譯,此時我們將回到使用 [發佈] 選項搭配網站專案來查看。

注意

雖然 Visual Studio 中的 [發佈] 選項同時適用於網站專案和 Web 應用程式專案,但 Visual Web 開發人員僅提供 Web 應用程式專案的 [發佈] 選項。

讓我們看看如何使用 [發佈] 選項來部署書籍評論應用程式。 首先,在 Visual Studio 中開啟 BookReviewsWAP (Web 應用程式專案) 。 從 [發佈] 功能表中,選擇 [建置 BookReviewsWAP] 專案。 這會顯示一個對話框,提示輸入目標位置,以及其他組態選項 (請參閱圖 6) 。 就像使用複製網站工具,您可以輸入指向本機資料夾的位置、IIS 上的本機網站、支援 FrontPage Server Extensions 的遠端網站,或 FTP 伺服器位址。 您可以選擇是否要將遠端網頁伺服器上的檔案取代為已部署的檔案,或在發佈之前刪除遠端網站上的所有內容。 您也可以指定是否要複製:

  • 只有執行應用程式所需的專案中的檔案,這樣會省略不需要的原始程式碼和專案相關檔案。
  • 所有項目檔,包括原始程式碼檔和 Visual Studio 專案檔,例如方案檔。
  • 來源項目資料夾中的所有檔案,不論是否包含在專案中,都會複製源項目資料夾中的所有檔案。

您也可以選擇上傳資料夾的內容 App_Data

[發佈 Web] 對話框的螢幕快照,其中顯示 [發佈之前刪除所有現有的檔案] 和 [僅執行] 複選框所需的檔案。

圖 6:指定目的地網站 (按下即可檢視完整大小的影像)

對於 Book Review 應用程式,遠端網站包含透過複製網站工具複製 BookReviewsWSP 專案時所部署的檔案。 因此,讓我們從刪除所有現有的內容開始,讓 [發佈] 選項開始。 此外,讓我們只複製必要的檔案,而不是將生產環境與不需要的原始程式碼和專案檔雜亂。 指定這些選項之後,按兩下 [發佈] 按鈕。 在接下來的幾秒內,Visual Studio 會將必要的檔案部署到目的地網站,並在 [輸出] 視窗中顯示其進度。

圖 7 顯示發布作業完成後 FTP 網站上的檔案。 請注意,只有標記頁面和必要的伺服器和用戶端支援檔案已上傳。

只有所需的檔案發佈至生產環境

圖 7:只有所需的檔案發佈至生產環境 (按兩下即可檢視完整大小的映像)

[發佈] 選項比複製網站工具更不細微。 雖然複製網站工具可讓您檢查本機和遠端網站上的檔案,並查看檔案的差異,但 [發佈] 選項不提供這類介面。 此外,複製網站工具可讓您進行一次性變更、上傳或刪除個別檔案。 [發佈] 選項不允許這類精細的控制;相反地,它會發佈 整個 應用程式。 此行為具有其優缺點。 此外,您知道使用 [發佈] 選項時,您不會忘記上傳重要的檔案。 但是,如果您對非常大的網站進行了小變更,請考慮會發生什麼事 - 使用 [發佈] 選項,您無法更新該頁面或兩個已修改的頁面,但您必須等待 Visual Studio 部署整個網站。

有一些檔案的內容在生產環境與開發環境之間有所差異,並不常見。 主要範例是應用程式的組態檔 Web.config 因為 [發佈] 選項會盲目複製 Web 應用程式檔,所以它會以開發環境中的版本覆寫生產環境的自定義組態檔。 後續的教學課程會進一步探索本主題,並提供在這類差異存在時部署 Web 應用程式的秘訣。

摘要

部署網站牽涉到將必要的檔案從開發環境複製到生產環境。 上一個教學課程示範如何使用 FILEZilla 之類的 FTP 用戶端來傳輸檔案。 本教學課程已檢查 Visual Studio 中的兩個部署工具:複製網站工具和 [發佈] 選項。 複製網站工具類似於 FTP 用戶端,其具有兩個行動流覽介面,其中列出本機電腦上的檔案,以及指定的遠端電腦,可讓您輕鬆地在兩部電腦之間上傳或下載檔案。 [發佈] 選項是更模糊的工具,可明確編譯專案,然後將整個應用程式部署到指定的目的地。

快樂的程序設計!

深入閱讀

如需本教學課程中所討論之主題的詳細資訊,請參閱下列資源: