將您的應用程式部署到資料夾、IIS、Azure 或其他目的地
藉由部署應用程式、服務或元件,您可以將它散發給其他計算機、裝置、伺服器或雲端中的安裝。 您在 Visual Studio 中為所需的部署類型選擇適當的方法。
取得部署任務的協助:
不確定要選擇哪個部署選項? 請參閱 哪些發佈選項適合我?
如需協助解決 Azure App Service 或 IIS 的部署相關問題,請參閱 在 Azure App Service 和 IIS 上針對 ASP.NET Core 的疑難排解。
如需設定 .NET 部署設定的說明,請參閱 設定 .NET 部署設定。
若要部署至新的目標,如果您先前已建立發行配置檔,請針對先前設定的配置檔,從 [發行] 畫面選取 [新增]。 發佈 工具隨即出現。
然後,在 [發佈] 工具中選擇部署選項。 如需發佈選項的相關信息,請參閱下列各節。
哪些發佈選項適合我?
從 Visual Studio 中,應用程式可以直接發佈至下列目標:
當您建立新的發行設定檔時,上述選項會顯示如下圖所示。
如需更多一般應用程式部署選項的快速導覽,請參閱 第一次查看部署。
天藍色
當您選擇 Azure 時,您可以選擇:
- 在 Windows、Linux 或 Docker 映射上執行的 Azure App Service
- 一個 Docker 映像部署至 Azure Container Registry
- Azure 虛擬機器
Azure 容器應用
Azure Container Apps 可協助開發人員建立和管理容器化 Web 應用程式和服務。
雖然您可以將容器化應用程式部署至 Azure App Service,但 Azure Container Apps 已優化,以更有效率地使用容器化應用程式的資源,因此節省成本,以及使用 Azure Container Apps 的其他優點。
選擇 Azure Container Apps 的時機
- 您的應用程式和服務會在容器或多個容器中執行
- 您需要高可用性和彈性擴展
- 您的應用程式與微服務架構模式非常相符,功能分成一組模組化的單一任務服務,通常以 Azure Functions 實作。 例如,以離散作業執行的單一工作服務集合、回應事件,或處理來自佇列或觸發程式的要求。
- 您想要容器協調流程 (Kubernetes) 的優點,但不想直接管理 Kubernetes。 (如果您想要對支援容器化服務的 Kubernetes 基礎結構進行深層控制,請考慮使用 Azure Kubernetes Service (AKS)。
Azure App Service
Azure App Service 可協助開發人員快速建立可調整的 Web 應用程式和服務,而不需要維護基礎結構。 在 Azure 中的雲端託管虛擬機上運行的 App Service,這些虛擬機的管理由系統為您處理。 App Service 中的每個應用程式都會被指派一個唯一的 *.azurewebsites.net URL;除了免費方案,所有其他定價層都允許為網站指派自訂域名。
您可以選擇包含 App Service 的 定價層或方案,判斷 App Service 具有多少運算能力。 您可以有多個 Web 應用程式(和其他應用程式類型)共用相同的 App Service,而不需要變更定價層。 例如,您可以在相同的 App Service 上一起裝載開發、預備和生產 Web 應用程式。
選擇 Azure App Service 的時機
- 您想要部署可透過因特網存取的 Web 應用程式。
- 您想要根據需求自動調整 Web 應用程式,而不需要重新部署。
- 您不想維護伺服器基礎結構(包括軟體更新)。
- 在裝載 Web 應用程式的伺服器上,您不需要任何機器層級自定義。
如果您想要在自己的數據中心或其他內部部署計算機上使用 Azure App Service,可以使用 Azure Stack 。
如需發佈至 App Service 的詳細資訊,請參閱:
- 快速啟動 - 發佈至 Azure App Service
- 快速入門 - 將 ASP.NET Core 發佈至 Linux。
- 將 ASP.NET Core 應用程式發佈至 Azure App Service
- 針對 Azure App Service 和 IIS上的 ASP.NET Core 進行疑難解答。
Azure WebJobs
由 App Service 支援 Azure WebJobs。 請參閱 使用 Visual Studio 開發及部署 WebJobs。
選擇 Azure WebJobs 的時機
- 您有一個工作進程,這是一項可以在不需要使用者互動的情況下執行的計算。
- 作業是隨選的,由事件觸發或是連續的。
- 作業會在 Windows 或 Linux 上的 .NET Core 上執行(使用 Visual Studio 17.12 或更新版本)。
類似案例的另一個選項是 Azure Functions。 若要為您選擇正確的選項,請參閱 在 Azure中選擇正確的整合與自動化服務。
Azure 容器登錄服務
Azure Container Registry 可讓您針對所有類型的容器部署,在私有登錄中建置、儲存和管理 Docker 容器映像檔和工件。
選擇 Azure Container Registry 的時機
- 當您有現有的 Docker 容器開發與部署流程時。
- 當您想要在 Azure 中建置 Docker 容器映射時。
如需詳細資訊:
Azure 虛擬機
Azure 虛擬機 (VM) 可讓您在雲端中建立和管理任意數目的運算資源。 藉由承擔 VM 上所有軟體和更新的責任,您可以視應用程式的需求自定義它們。 您可以直接透過遠端桌面協議存取虛擬機,而且每個虛擬機只要需要都會維持其指派的IP位址。
調整裝載在虛擬機上的應用程式,牽涉到根據需求啟動其他 VM,然後部署必要的軟體。 這個額外的控制層級可讓您在不同的全域區域中以不同的方式進行調整。 例如,如果您的應用程式為各種地區辦公室的員工提供服務,您可以根據這些區域中的員工數目調整 VM,進而降低成本。
如需詳細資訊,請參閱 Azure App Service、Azure 虛擬機和其他 Azure 服務之間的 詳細比較,您可以使用 Visual Studio 中的 [自定義] 選項作為部署目標。
選擇 Azure 虛擬機的時機
- 您想要部署可透過因特網存取的 Web 應用程式,並完全控制指派 IP 位址的存留期。
- 您需要伺服器上的機器層級自定義,其中包括其他軟體,例如特製化資料庫系統、特定的網路設定、磁碟分區等等。
- 您想要對 Web 應用程式調整進行精細的控制。
- 基於任何其他原因,您需要直接存取裝載應用程式的伺服器。
Docker 容器登錄
如果您的應用程式使用 Docker,您可以將容器化應用程式發佈至 Docker 容器登錄。
選擇 Docker Container Registry 的時機
- 您要部署容器化應用程式
如需詳細資訊,請參閱下列各項:
DevTest Labs
如果您想要部署至 Azure DevTest Labs,請使用 [發佈] 工具中的 [資料夾部署] 選項。
如需完整步驟,請參閱 發佈應用程式以在 Azure DevTest Labs VM上進行測試。 在連結的文章中,資料夾發佈步驟會套用至 .NET Core/.NET 5+。 其餘的指示同時適用於 .NET 和 .NET Framework。 針對 .NET Framework ClickOnce 應用程式,您可以使用 發佈精靈 發佈至資料夾。
資料夾
部署至檔案系統表示將應用程式的檔案複製到您自己電腦上的特定資料夾。 部署至資料夾最常用於測試目的,或如果計算機也執行伺服器,則部署應用程式供少數人使用。 如果目標資料夾在網路上共用,則部署至檔案系統可以讓其他可能將其部署至特定伺服器的其他人可以使用 Web 應用程式檔案。
從 Visual Studio 2019 16.8 開始,資料夾目標包含使用 ClickOnce 發佈 .NET Windows 應用程式的能力。
如果您想要使用 ClickOnce 發佈 .NET Windows 傳統型專案 (.NET Core 3.1、.NET 5 及更新版本),請參閱 使用 ClickOnce部署 .NET Windows 應用程式。
執行伺服器的任何本機電腦都可以透過因特網或內部網路提供您的應用程式,視其設定方式及其連線的網路而定。 (如果您將電腦直接連線到因特網,請特別小心保護計算機免受外部安全性威脅。由於您管理這些機器,因此您可以完全控制軟體和硬體組態。
如果基於任何原因(例如機器存取)而無法使用 Azure App Service 或 Azure 虛擬機等雲端服務,您可以在自己的數據中心內使用 azure Stack
選擇檔案系統部署的時機
您只需要將應用程式部署至檔案共用,其他人會從中將它部署到不同的伺服器。
您想要使用 ClickOnce 部署 .NET Windows 應用程式
您只需要進行本機測試部署。
您想要先檢查並可能獨立修改應用程式檔,再將它們傳送至另一個部署目標。
如需詳細資訊,請參閱 快速入門 - 部署至本機資料夾。
如需使用 ClickOnce 部署 .NET Windows 應用程式的詳細資訊,請參閱 使用 ClickOnce部署 .NET Windows 應用程式。
如需選擇設定的其他說明,請參閱下列各項:
FTP/FTPS 伺服器
FTP/FTPS 伺服器可讓您將應用程式部署至 Azure 以外的伺服器。 它可以部署到您有權存取的文件系統或任何其他伺服器(因特網或內部網路),包括其他雲端服務上的伺服器。 它可以使用 Web 部署(檔案或.ZIP)和 FTP。
選擇 FTP/FTPS 伺服器時,Visual Studio 會提示您輸入設定檔名稱,然後收集其他 連線 資訊,包括目標伺服器或位置、網站名稱和認證。 您可以在 [ 設定] 索引標籤上控制下列行為:
- 您想要部署的組態。
- 是否要從目的地移除現有的檔案。
- 是否要在發佈期間先行編譯。
- 是否要從部署排除App_Data資料夾中的檔案。
您可以在 Visual Studio 中建立任意數目的 FTP/FTPS 部署配置檔,讓您能夠使用不同的設定來管理配置檔。
選擇 FTP/FTPS 伺服器部署的時機
- 您在 Azure 以外的提供者上使用雲端服務,可透過 URL 存取。
- 您想要使用不一樣於您在 Visual Studio 內使用的認證,或不直接系結於您的 Azure 帳戶的認證來進行部署。
- 您想要在每次部署時從目標刪除檔案。
網頁伺服器 (IIS)
IIS 網頁伺服器可讓您將應用程式部署至 Azure 以外的 Web 伺服器。 它可以部署到您有權存取的 IIS 伺服器(因特網或內部網路),包括其他雲端服務上的伺服器。 它可以與 Web Deploy 或 Web Deploy 套件搭配使用。
選擇 IIS 網頁伺服器時,Visual Studio 會提示您輸入配置檔名稱,然後收集其他 連線 資訊,包括目標伺服器或位置、網站名稱和認證。 您可以在 [ 設定] 索引標籤上控制下列行為:
- 您想要部署的組態。
- 是否要從目的地移除現有的檔案。
- 是否要在發佈期間先行編譯。
- 是否要從部署排除App_Data資料夾中的檔案。
您可以在 Visual Studio 中建立任意數目的 IIS Web 伺服器部署設定檔,讓您能夠使用不同的設定來管理設定檔。
選擇網頁伺服器 (IIS) 部署的時機
- 您使用 IIS 來發布可透過 URL 存取的網站或服務。
- 您想要使用不同於 Visual Studio 內所使用的憑證或與 Azure 帳戶直接關聯的憑證來進行部署。
- 您想要在每次部署時從目標刪除檔案。
如需詳細資訊,請參閱 快速入門 - 部署至網站。
如需在 IIS 上針對 ASP.NET Core 進行疑難解答的協助,請參閱 在 Azure App Service 和 IIS上針對 ASP.NET Core 進行疑難解答。
匯入配置檔
發佈至 IIS 或 Azure App Service 時,您可以匯入設定檔。 您可以使用 發佈設定檔(*.publishsettings)來配置部署。 發行配置檔是由 IIS 或 Azure App Service 所建立,也可以手動建立,然後匯入 Visual Studio。
使用發行配置檔可以簡化部署設定,並在小組環境中運作得更好,而不是手動設定每個部署配置檔。
選擇匯入配置檔的時機
- 您要發佈至 IIS,並想要簡化部署設定。
- 您正在將專案發佈到 IIS 或 Azure App Service,希望加速部署設定,以便重複使用,並讓小組成員也能快速發佈到相同的服務。
如需詳細資訊,請參閱下列各項:
配置 .NET 部署設定
如需其他協助以選擇設定,請參閱下列各項:
後續步驟
教程:
- 使用發行工具部署 .NET Core 應用程式
- 將 ASP.NET 核心應用程式發佈至 Azure
- Visual C++ 中的
部署 - 部署 UWP 應用程式
- 使用 Web Deploy 將 Node.js 應用程式發佈至 Azure