將您的應用程式部署至資料夾、IIS、Azure 或另一個目的地
透過部署應用程式、服務或元件,就可以將它散發到其他電腦、裝置、伺服器或雲端上進行安裝。 請在 Visual Studio 中針對您需要的部署類型選擇適當的方法。
取得部署工作的協助:
- 不確定要選擇哪個部署選項? 請參閱適合我的發行選項為何?
- 如需 Azure App Service 或 IIS 部署問題的協助,請參閱針對 Azure App Service 和 IIS上的 ASP.NET Core 進行疑難排解。
- 如需設定 .NET 部署設定的協助,請參閱設定 .NET 部署設定。
若要部署至新的目標,如果您先前已建立發行設定檔,請從所設定設定檔的 [發佈] 視窗中選取 [新增]。
然後,在 [發佈] 工具中選擇部署選項。 如需發佈選項的相關資訊,請參閱下列各節。
若要部署至新的目標,如果您先前已建立發行設定檔,請從所設定設定檔的 [建置] 功能表中選取 [發佈選取項目]。
然後,在 [發佈] 工具中選擇部署選項。 如需發佈選項的相關資訊,請參閱下列各節。
適合我的發行選項為何?
在 Visual Studio 內,可以直接將應用程式發行至下列目標:
建立新的發行設定檔時,上述選項的顯示如下圖所示。
如需更多一般應用程式部署選項的快速導覽,請參閱部署簡介。
Azure
當您選擇 Azure 時,您可以選擇:
- 在 Windows、Linux 或 Docker 映像上執行的 Azure App Service
- 部署至 Azure Container Registry 的 Docker 映像
- Azure 虛擬機器
Azure App Service
Azure App Service 可協助開發人員快速建立可調整的 Web 應用程式和服務,而不需要維護基礎結構。 App Service 會在 Azure 中裝載雲端的虛擬機器上執行,並自動管理這些虛擬機器。 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 Container Registry
Azure Container Registry 可讓您建置、儲存及管理所有類型容器部署的私人登錄中的 Docker 容器映像及成品。
選擇 Azure Container Registry 的時機
- 有現有的 Docker 容器開發和部署管線時。
- 想要在 Azure 中建置 Docker 容器映像時。
如需詳細資訊,請參閱:
Azure 虛擬機器
Azure 虛擬機器 (VM) 可讓您在雲端中建立和管理任意數目的計算資源。 假設負有 VM 上所有軟體和更新的責任,即可依應用程式要求視需要進行自訂。 您可以透過「遠端桌面」直接存取虛擬機器,每部機器都會依需要維持其獲指派的 IP 位址。
調整裝載於虛擬機器的應用程式涉及依需求啟動其他 VM,然後部署必要軟體。 這個額外控制層可讓您在全球各地區以不同的方式調整。 例如,如果您的應用程式服務各種地區辦公室的員工,則可以依據這些地區域中的員工數目來調整 VM,而這可能會降低成本。
如需其他資訊,請參閱 Azure App Service、Azure 虛擬機器以及您可以使用來做為 Visual Studio 中的自訂選項部署目標的其他 Azure 服務之間的詳細比較。
選擇 Azure 虛擬機器的時機
- 您想要部署可透過網際網路存取的 Web 應用程式,並完整控制所指派 IP 位址的存留期。
- 您需要在伺服器上進行電腦層級自訂,包括特定資料庫系統、特定網路組態、磁碟分割等這類額外軟體。
- 您想要具有調整 Web 應用程式的細部控制層。
- 您因任何其他原因而需要直接存取裝載應用程式的伺服器。
如果您想要在自己的資料中心或其他內部部署電腦中使用 Azure 虛擬機器,則做法是使用 Azure Stack。
Docker 容器登錄
如果您的應用程式使用 Docker,您可以將容器化應用程式發佈至 Docker 容器登錄。
選擇 Docker 容器登錄的時機
- 您想要部署容器化應用程式
如需詳細資訊,請參閱下列:
DevTest Labs
如果您想要部署至 Azure DevTest Labs,請使用 [發佈] 工具中的 [資料夾部署] 選項。
如需完整步驟,請參閱發佈應用程式以在 Azure DevTest Labs VM 上進行測試。 在連結的文章中,資料夾發佈步驟會套用至 .NET Core/.NET 5+。 其餘的指示同時適用於 .NET 和 .NET Framework。 針對 .NET Framework ClickOnce 應用程式,您可以使用 [發佈精靈] 以發佈至資料夾。
Folder
部署至檔案系統,表示只需要將應用程式檔案複製到您自己電腦上的特定資料夾。 部署至資料夾最常用於進行測試;或者,如果電腦也執行伺服器,則用來部署應用程式以供有限數目的人員使用。 如果在網路上共用目標資料夾,則部署至檔案系統之後,其他可能接著將它部署至特定伺服器的人員將可使用 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。 Azure Stack 既可讓您透過 Azure App Service 和「Azure 虛擬機器」來管理和使用計算資源,又可讓所有項目保留在內部部署環境中。
選擇檔案系統部署的時機
您只需要將應用程式部署至檔案共用,而其他人將從該檔案共用部署至不同伺服器。
您想要使用 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 伺服器部署的時機
- 您使用可透過 URL 存取的提供者 (非 Azure) 雲端服務。
- 您想要使用認證進行部署,但這些認證不是您在 Visual Studio 內使用的認證或直接繫結至 Azure 帳戶的認證。
- 您想要在每次部署時刪除目標中的檔案。
網頁伺服器 (IIS)
IIS 網頁伺服器可讓您將應用程式部署至 Azure 以外的 Web 服務器。 它可以部署至您具有存取權的 IIS 伺服器 (網際網路或內部網路),包括其他雲端服務上的伺服器。 它可以與 Web Deploy 或 Web Deploy 封裝搭配使用。
選擇 IIS Web 伺服器時,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 部署設定
如需選擇您的設定的其他協助,請參閱下列各項:
下一步
教學課程: