如何升级 azure CI 以使用 c# 8.0

Chr*_*ans 9 c# continuous-integration azure azure-devops asp.net-core

我有一个用于构建我的 asp.net core 2.2 项目的 azure 管道。我升级了项目使用 c# 8.0。但是,我的 azure 管道似乎不支持 c# 8.0。如何升级我的 azure 管道以使用 c# 8.0?

我查看了 azure 管道中的选项,但没有发现任何关于升级到 c# 8.0 的内容

这是生成的 YAML 文件

pool:
  name: Hosted VS2017
  demands:
  - msbuild
  - visualstudio

steps:
- task: NuGetToolInstaller@0
  displayName: 'Use NuGet 4.4.1'
  inputs:
    versionSpec: 4.4.1

- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    restoreSolution: '$(Parameters.solution)'
    vstsFeed: '3e219c03-bc0d-4106-82be-9ff3b21190a5'

- task: VSBuild@1
  displayName: 'Build solution'
  inputs:
    solution: '$(Parameters.solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'

- task: VSTest@2
  displayName: 'Test Assemblies'
  inputs:
    testAssemblyVer2: |
     **\$(BuildConfiguration)\*test*.dll
     !**\obj\**
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    diagnosticsEnabled: True
  enabled: false

- task: PublishSymbols@2
  displayName: 'Publish symbols path'
  inputs:
    SearchPattern: '**\bin\**\*.pdb'
    PublishSymbols: false
  continueOnError: true

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact'
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'
    ArtifactName: '$(Parameters.ArtifactName)'
  condition: succeededOrFailed()

Run Code Online (Sandbox Code Playgroud)

我希望该项目能够构建,但它给了我这个错误: CSC : error CS1617: Invalid option '8.0' for /langversion. Use '/langversion:?' to list supported values.

Chr*_*ans 12

我想通了这个问题。基于 YAML 文件,我使用的是“Hosted 2017”代理池。在我使用“Windows 2019”规范将其更改为“Azure Pipelines”后,它起作用了。

  • 可以在 https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops 查看可用代理的列表 (2认同)