AWS CodeBuild支持标准.net吗?

时间:2018-08-31 20:00:03

标签: .net asp.net-mvc aws-code-deploy aws-codepipeline aws-codebuild

我正在尝试在AWS中设置概念证明CI / CD。我需要建立一个.net mvc项目(不是核心而是标准)。

因此,到目前为止,我认为我们需要定义一个管道,通过源代码获取代码(在我的情况下为github),并将其放入S3中,然后CodeBuild进行构建,然后CodeDeploy部署它。

我发现一些帖子说CodeBuild尚不支持构建标准.net,因为它没有Windows服务器选项。但是the post已过时,它现在实际上具有Windows选项-请参见下图。

shows windows server is available

所以我认为它现在可以支持标准的.net构建,但是我很难找到有关它的任何文档。我卡住的地方实际上是在设置buildspec.yml文件。我不知道如何为标准的.net mvc应用程序设置它。前面的文章介绍了如何创建buildspec.yml而不是.net内核,因此对我不起作用。

有人可以帮我解决这个问题吗?

还是我真的应该继续设置一个jenkins服务器并从那里步行吗?

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

Amazon as of May-2018支持Windows主机,因此可以。将其与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

答案 2 :(得分:0)

现在为了自己实现这个目的,周围有一些漏洞,恐怕答案不是黑白的。

AWS CodeBuild确实支持.net构建,但是我强烈建议不要这样做。因为一些问题的时间成本(和痛苦)。

  1. 查找和理解buildspec配置很麻烦here
  2. 修复丢失的引用(例如丢失的Microsoft.WebApplication.targets)。

我自己又遇到了另一个错误,即长文件名不受支持,谁知道接下来会发生什么。

即使变通办法也有变通办法,所以让我们面对吧。 对于通过msbuild进行构建的特定目的来说,这不是很好,我感到非常不满。

我的下一个尝试是将构建直接直接自动上载到S3,因此是一个localhost构建和服务器端部署过程。不是我最初的意图。