本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 上部署 ASP.NET Web Forms 應用程式 AWS
管理 NuGet 套件
NuGet 是包含和管理 .NET 程式碼套件的儲存庫。應用程式可以安裝兩種類型的 NuGet 套件:來自 nuget.org
若要解決此問題,您可以佈建受管成品 (NuGet) 儲存庫,從外部來源下載套件,例如 nuget.org。您可以使用 AWS CodeArtifact做為 NuGet 套件儲存庫,這是全受管成品儲存庫服務。如需詳細資訊,請參閱使用 NuGet 搭配 AWS CodeArtifact
若要將您的應用程式設定為使用 NuGet 套件儲存庫,請在專案根目錄或解決方案根目錄中建立 NuGet.config
檔案。此檔案指定 NuGet 在還原套件時應使用的套件來源。下列範例示範如何設定 NuGet.config
檔案以使用 CodeArtifact:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageRestore> <!-- Allow NuGet to download missing packages --> <add key="enabled" value="True" /> <!-- Automatically check for missing packages during build in Visual Studio --> <add key="automatic" value="True" /> </packageRestore> <packageSources> <add key="MyRepo" value="https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json" /> </packageSources> </configuration>
在此範例中,將 取代https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json
為 CodeArtifact 儲存庫的實際 URL。您可以在 CodeArtifact 主控台aws codeartifact get-repository-endpoint
命令找到此 URL。
重要
-
設定
NuGet.config
檔案會影響相同目錄結構中的所有專案。如果您想要將不同的套件來源用於不同的專案,請為每個專案或解決方案建立個別NuGet.config
的檔案。 -
確定建置應用程式的執行個體具有必要的許可和網路存取,以連線至 NuGet 套件儲存庫 (例如 CodeArtifact)。如需取得登入資料的詳細資訊,請參閱 CodeArtifact 文件中的搭配使用 CodeArtifact 與 nuget 或 dotnet CLI。 CodeArtifact
建置應用程式
當您將舊版 ASP.NET Web Forms 應用程式遷移至 時 AWS,您會繼續使用 Microsoft Build Engine (MSBuild) 做為建置應用程式的中心工具。MSBuild 通常會與 Visual Studio 綁定,但您可以從 Microsoft 下載並使用獨立的 MSBuild 可執行檔,而無需安裝 Visual Studio。當您在其中建置 Web Forms 應用程式時 AWS,此方法特別有用,您可以在安裝 MSBuild 的情況下使用 Windows 執行個體或 Docker 容器。
建置 ASP.NET Web Forms 應用程式需要兩個主要步驟:還原 NuGet 套件和建置應用程式。如何執行這些步驟的詳細資訊可能會因您選擇使用的 CI/CD 工具而有所不同。例如,如果您使用 AWS CodeBuild,建置程序會在 Docker 容器內執行。
還原 NuGet 套件
建置應用程式之前,您必須還原專案所需的 NuGet 套件。您可以使用在專案根目錄中執行的 MSBuild 或 NuGet 命令列界面 (CLI) 命令來執行此操作。
使用 MSBuild:
msbuild -t:restore
使用 NuGet CLI:
nuget restore
使用 MSBuild 建置
還原 NuGet 套件之後,您可以繼續執行產生部署成品的主建置命令。命令通常會指定專案檔案、建置組態 (例如 Release
),以及建置成品的輸出目錄。
msbuild <ProjectName>.csproj /p:Configuration=Release /p:OutDir=<OutDir>
如需 MSBuild 選項的詳細資訊,請參閱 Microsoft 文件中的 MSBuild 命令列參考
如需使用 建置 ASP.NET 應用程式的詳細資訊 AWS CodeBuild,請參閱 AWS 部落格文章使用 AWS CodePipeline 和 為 ASP.NET 4.x 建立 CI/CD 管道 AWS Elastic Beanstalk
部署應用程式
建置 Web Forms 應用程式之後,您可以將成品部署到目標環境 AWS。在大多數情況下,您可以將建置的成品壓縮並上傳至 Amazon Simple Storage Service (Amazon S3) 儲存貯體,以便於分發和部署。如需說明,請參閱 Amazon S3 文件。
有兩種主要選項可將成品部署到 Amazon EC2 執行個體:手動和自動。
手動部署
此選項涉及使用 EC2 執行個體使用者資料來包含將執行下列任務的指令碼:
-
安裝網際網路資訊服務 (IIS)
-
從 Amazon S3 儲存貯體提取和解壓縮建置成品
-
建立和設定 IIS 應用程式
雖然這種方法提供靈活性,但它需要手動介入,並且隨著應用程式擴展或頻繁更新而變得難以管理。
自動化部署
建議的方法為使用 AWS CodeDeploy
如需使用 CodePipeline、CodeBuild 和 CodeDeploy 為 ASP.NET Web Forms 應用程式設定 CI/CD 管道的詳細資訊和範例,請參閱 AWS 部落格文章使用 AWS CodePipeline 和 為 ASP.NET 4.x 建立 CI/CD 管道。 AWS Elastic Beanstalk
透過使用 CodeBuild、CodeDeploy 和 CodePipeline AWS 服務 等 ,您可以簡化遷移 ASP.NET Web Forms 應用程式的建置和部署程序,並確保 AWS 基礎設施的部署一致且可靠。
如需自動化部署的詳細資訊,請參閱 AWS 部落格文章使用 產生容器化 ASP.NET 應用程式的 CI/CD 管道 AWS App2Container