![](/img/trans.png)
[英]Azure DevOps: tests failing when addressing multiple .Net frameworks
[英]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.