簡體   English   中英

AWS CodeBuild支持標准.net嗎?

[英]Is standard .net supported by AWS CodeBuild?

我正在嘗試在AWS中設置概念證明CI / CD。 我需要建立一個.net mvc項目(不是核心而是標准)。

因此,到目前為止,我想到的是我們需要定義一個管道,通過源代碼獲取代碼(在我的情況下為github),然后將其放入S3 ,然后由CodeBuild構建它,然后由CodeDeploy部署它。

我發現有帖子說CodeBuild尚不支持構建標准.net,因為它沒有Windows Server選項。 但是帖子已過時,並且現在實際上具有Windows選項-請參見下圖。

顯示Windows服務器可用

因此,我認為它現在可以支持標准的.net構建,但是我很難找到有關它的任何文檔。 我卡住的地方實際上是設置buildspec.yml文件。 我不知道如何為標准的.net mvc應用程序設置它。 前面的文章介紹了如何為.net核心創建buildspec.yml ,因此對我不起作用。

誰能幫我解決這個問題?

還是我真的應該繼續設置jenkins服務器並從那里步行?

https://aws.amazon.com/blogs/devops/extending-aws-codebuild-with-custom-build-environments-for-the-net-framework/描述了如何在Windows構建中使用自定義Docker映像。

CodeBuild文檔中提供了一些示例: https ://docs.aws.amazon.com/codebuild/latest/userguide/sample-windows.html

截至2018年5月 ,亞馬遜支持Windows主機,因此可以。 結合使用Microsoft .NET Framework構建映像 ,我已經能夠使其正常運行。 這是一個初步的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

為了自己實現這一目標,已經繞了一些漏洞,恐怕答案不是黑白的。

AWS CodeBuild確實支持.net構建,但是我強烈建議不要這樣做。因為存在一些問題的時間成本(和痛苦)。

  1. 在這里查找和理解buildspec配置很麻煩
  2. 修復缺少的引用(例如,缺少的Microsoft.WebApplication.targets )。

我自己也遇到了另一個錯誤,即長文件名不受支持,誰知道接下來會發生什么。

即使解決方法也有解決方法,所以讓我們面對吧。 對於通過msbuild進行構建的特定目的,它不是很好,我非常不滿意。

我的下一個嘗試是將構建直接直接自動上載到S3,因此是一個localhost構建和服務器端部署過程。 不是我最初的意圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM