簡體   English   中英

Azure Devops - 針對解決方案中的多個 .NET 框架

[英]Azure Devops - Targeting Multiple .NET frameworks in solution

我已經設置了 Azure 管道,它使用不同的 .NET 框架構建了多個項目和解決方案。 使用的框架:.NET Standard 2.1、.NET 4.7.2、.NET5、.NET Core 3.1。 我使用池windows-2019 ,一切正常。

現在,我必須構建以 .NET 6 為目標的新項目,並且必須首先在管道中構建。 因為池 windows-2019 沒有安裝 .NET 6,所以我必須使用UseDotNet任務安裝它。 但是一旦我安裝了 .NET 6,其余的項目構建就會失敗。

我知道可以使用UseDotNet任務再次指定較舊的框架,但我遇到了問題,因為一個解決方案(yaml 片段中的解決方案 3)包括使用 .NET 5 和 .NET Core 3.1 的項目。 因此,當我使用UseDotNet任務指定 .NET 5 時,解決方案構建失敗,因為缺少 .Net Core 3.1,反之亦然。

是否可以在解決方案構建之前指定要使用的兩個框架? 或者這種情況應該如何處理?

片段:

pool:
      vmImage: 'windows-2019'

- task: UseDotNet@2
  displayName: 'Use .NET 6 sdk'
  inputs:
    version: 6.0.x
    includePreviewVersions: true

#Project Uses only .Net 6
- task: DotNetCoreCLI@2
  displayName: 'Build ProjectUsingNet6'
  inputs:
    command: 'build'
    projects: '**\ProjectUsingNet6.sln'

#Solution uses only .NET 3.1
- task: UseDotNet@2
  displayName: 'Use .Net Core 3.1'
  inputs:
    version: '3.1.x'

- task: VSBuild@1
  displayName: ProjectUsingNet31
  inputs:
    solution: '**\SolutionTargetingNet31.sln'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    
#Projects in solution tagerting .NET Standard 2.1, .NET 4.7.2, .NET 5, .Net Core 3.1 which fails
- task: VSBuild@1
  displayName: Solution 3
  inputs:
    solution: '**\Solution3.sln'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

Azure Devops - 針對解決方案中的多個 .NET 框架

同意 GeralexGR。 當您的解決方案中有多個 .NET 框架時,您可以為每個框架使用該階段,尤其是當您的 .NET 框架不向后兼容時。

stages:
- stage: .NET 6 sdk
  jobs:
  - job:
    ...

- stage: .NET 5 sdk
  jobs:
  - job:
    ...

- stage: .NET 3.1 sdk
  jobs:
  - job:
    ...

您可以檢查添加階段、依賴項和條件以獲取更多詳細信息。

暫無
暫無

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

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