如何配置 AWS CodeBuild 来构建 ASP.NET 4 个应用程序

How to configure AWS CodeBuild to build ASP.NET 4 application

我查看了 AWS CodeBuild 文档并以各种形式在谷歌上搜索了这个问题,但没有找到任何相关内容。

我有一个 ASP.NET 4 MVC 应用程序,它以 .NET Framework 4.5.2 为目标。 最重要的想法是将此应用程序从 git 存储库自动部署到几台 windows 机器上。

我有使用 AWS CLI 和 AWS CodeDeploy 构建应用程序并将其从我的开发机器部署到我们的服务器的脚本。这些脚本工作正常。

我不知道该怎么做的下一步是使用 AWS CodeBuild(或者也许我应该使用其他 AWS 东西或不是 AWS 东西)以便从 git 存储库和 运行 我的构建脚本(不在我的开发机器上)。但似乎 CodeBuild 只能在 Unix/Linux 环境下工作,而不能在 Windows + .NET Framework 下工作。

问题是: 有没有一种方法可以使用 CodeBuild 或其他一些 AWS 服务来从 git 存储库中提取代码并构建 ASP.NET 4 以 .NET Framework 为目标的应用程序以及如何执行此操作?

除非最近发生了某些变化,否则 AWS CodeBuild 仅支持 .net Core 应用程序,不支持传统的 .net 框架。

您可以在 EC2 实例上安装 Jenkins(或其他类似工具)并将其集成到您的流程中,但这需要您自己完成大部分工作才能使其正常工作。

Amazon,as of May-2018, supports Windows hosts. Combine that with the Microsoft .NET Framework Build Image,我已经可以使用它了。这是初步的 buildspec.yml 入门:

version: 0.2

# Assumes the image is microsoft/dotnet-framework:4.7.2-sdk or similar
phases:
  install:
    commands:
      # Below is the URL for the MSI linked from https://www.iis.net/downloads/microsoft/web-deploy
      - Invoke-WebRequest -OutFile WebDeploy_amd64_en-US.msi https://download.microsoft.com/download/0/1/D/01DC28EA-638C-4A22-A57B-4CEF97755C6C/WebDeploy_amd64_en-US.msi
      - msiexec /i WebDeploy_amd64_en-US.msi /quiet
      # MSIExec will return before it is actually done - 30s seems to work...
      - Start-Sleep 30
  pre_build:
    commands:
      - nuget restore
  build:
    commands:
      - msbuild /P:Configuration=Release /T:Build,Package