【问题标题】:How to add tasks to azure dev ops starter?如何向 azure devops starter 添加任务?
【发布时间】:2021-10-28 03:54:33
【问题描述】:

我是 azure dev ops 和 yml 文件的新手。我最近为我构建的一个 .NET Core 站点创建了一个 Azure 开发操作入门资源。我将它连接到 github repo 并推送了一些文件。

我收到错误:

构建失败。

/home/runner/.dotnet/sdk/3.1.302/Microsoft.Common.CurrentVersion.targets(1177,5):错误 MSB3644:未找到 .NETFramework,Version=v5.0 的参考程序集。要解决此问题,请为此框架版本安装开发包(SDK/Targeting Pack)或重新定位您的应用程序

我研究了这个问题并想出了这个解决方案https://stackoverflow.com/questions/65079876/error-msb3644-the-reference-assemblies-for-framework-netframework-version-v5#:~:text=assemblies%20for%20framework%20%22.-,NETFramework%2CVersion%3Dv5.,SDK%20or%20Targeting%20Pack%20installed

但是我不知道如何实际实现这一点。 我是否创建一个单独的 yml 文件并在我将其推送到 git 时修复它?

我尝试将以下块添加到自动创建时由 azure 在 repo 中自动生成的 devops-starter-workflow.yml 文件:

- task: UseDotNet@2
  displayName: 'Use .NET Core sdk 5.0.100'
  inputs:
    packageType: 'sdk'
    version: '5.0.100'
    includePreviewVersions: true

- task: DotNetCoreCLI@2
  displayName: 'dotnet restore'
  inputs:
    command: restore
    projects: '**/*.csproj'

但我收到错误消息“每个步骤都必须定义一个 usesrun 键”

我如何实际将它添加到我的构建中?我在我的 Azure 门户中的任何地方都没有看到管道。

【问题讨论】:

    标签: azure azure-devops yaml


    【解决方案1】:

    您是否指定 MS 代理 vs2017-win2016

    这是我所做的一个示例,应该可以帮助您弄清楚您的错误在我看来就像您使用了错误的代理,因为它无法找到能够构建 .Net 应用程序的 Visual Studio Code。

    trigger:
      branches:
        include:
        - master
    
    pr: none
    
    pool:
       vmImage: vs2017-win2016
    
    variables: 
      System.Debug: false
      azureSubscription: 'AzureSub'
      RG: 'myrg'
      Location: UK South 
      appconnectionname: 'azuresub/serviceprinciplename'
    
    jobs:
    
      - job: job1
        displayName: Create And Publish Artifact
       
        steps:
    
        - task: UseDotNet@2 ## Not Needed For MS Self Hosted Agent. 
          displayName: Use .Net Core 5.0.301 SDK
          inputs:
            packageType: 'sdk'
            version: '5.0.301'
    
        - task: DotNetCoreCLI@2
          displayName: dotnet restore
          inputs:
            command: restore
            projects: 'Website.csproj' 
     
        - task: DotNetCoreCLI@2
          displayName: dotnet build
          inputs:
            projects: 'Website.csproj'
            arguments: '--configuration Release'
      
        - task: DotNetCoreCLI@2
          displayName: dotnet restore unit tests 
          inputs:
            command: restore
            projects: 'UnitTests/UnitTests.csproj'
    
        - task: DotNetCoreCLI@2
          displayName: dotnet Test
          inputs:
            command: test
            projects: 'UnitTests/UnitTests.csproj'
            arguments: '--configuration Release'
          
        - task: DotNetCoreCLI@2
          displayName: dotnet publish
          inputs:
            command: publish
            projects: 'Website.csproj'
            arguments: '--configuration Release --output $(Build.ArtifactStagingDirectory)'
            zipAfterPublish: true
            modifyOutputPath: false
          
        - task: PublishPipelineArtifact@1
          displayName: Publish Pipeline Artifact
          inputs:
            targetPath: '$(Build.ArtifactStagingDirectory)'
            artifact: 'Website'
            publishLocation: 'pipeline'
    
      - job: job2
        displayName: Create Web App 
        dependsOn: job1   
        steps:
    
        # Download Artifact File
        - download: none
        - task: DownloadPipelineArtifact@2
          displayName: 'Download Build Artifacts'
          inputs:
            patterns: '**/*.zip'
            path: '$(Build.ArtifactStagingDirectory)'
    
        # deploy to Azure Web App 
        - task: AzureWebApp@1
          displayName: 'Azure Web App Deploy: nsclassroom'
          inputs:
            package: $(Build.ArtifactStagingDirectory)/**/*.zip 
            azureSubscription: $(azureSubscription)
            ConnectedServiceName: $(appconnectionname)
            appName: 'nsclassroom'
            ResourceGroupName: $(RG)
    
     

    请将其放入 Azure DevOps 中的 YAML 格式化程序中,以便仅检查空格或在 VS Code 中安装 YML 扩展。

    【讨论】:

      【解决方案2】:

      在门户中,我创建了一个单独的 Web 应用程序并将服务设置为 .Net 版本 5 而不是 Core v3,并且能够正确构建它。创建了一个新的 yml 文件,我只需要使用我的 csproj 将构建和发布过程更新到路径。 我认为一直以来我都需要 webapp - 而不是 devops starter

      【讨论】:

        猜你喜欢
        • 2020-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-21
        • 1970-01-01
        • 2020-08-07
        • 1970-01-01
        相关资源
        最近更新 更多