44
votes

ERREUR NETSDK1045: Le SDK .NET actuel ne prend pas en charge le ciblage .NET 6.0

J'ai passé 2 heures à essayer de comprendre ce qui ne va pas avec mon pipeline pour les fonctions Azure .NET6 (sur Windows).

Error NETSDK1045: The current .NET SDK does not support targeting .NET 6.0.  Either target .NET 5.0 or lower, or use a version of the .NET SDK that supports .NET 6.0.


0 commentaires

7 Réponses :


45
votes

J'ai trouvé la solution ici https: //jaliyaudagedara.blogspot .com / 2021/07 / azure-devops-building-projects.html
Cela fonctionne si je spécifie la version .NET Core SDK et définit la version Aperçu sur True

# .NET Core Function App to Windows on Azure
# Build a .NET Core function app and deploy it to Azure as a Windows function App.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core

trigger:
- master
- main
- dev

variables:
  azureSubscription: 'XXXX'
  functionAppName: 'XXXX'
  vmImageName: 'windows-latest'
  workingDirectory: '$(System.DefaultWorkingDirectory)/XXXX'

stages:
- stage: Build
  displayName: Build stage

  jobs:
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)

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

    - task: DotNetCoreCLI@2
      displayName: Build
      inputs:
        command: 'build'
        projects: |
          $(workingDirectory)/*.csproj
        arguments: --output $(System.DefaultWorkingDirectory)/publish_output --configuration Release

    - task: ArchiveFiles@2
      displayName: 'Archive files'
      inputs:
        rootFolderOrFile: '$(System.DefaultWorkingDirectory)/publish_output'
        includeRootFolder: false
        archiveType: zip
        archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
        replaceExistingArchive: true

    - publish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      artifact: drop

- stage: Deploy
  displayName: Deploy stage
  dependsOn: Build
  condition: succeeded()

  jobs:
  - deployment: Deploy
    displayName: Deploy
    environment: 'development'
    pool:
      vmImage: $(vmImageName)

    strategy:
      runOnce:
        deploy:

          steps:
          - task: AzureFunctionApp@1
            displayName: 'Azure functions app deploy'
            inputs:
              azureSubscription: '$(azureSubscription)'
              appType: functionApp
              appName: $(functionAppName)
              package: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'

donc mes pipelines finaux ressemblent à ceci

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

p>


5 commentaires

Les numéros de version peuvent être trouvés dans ce document: github. com / dotnet / core / blob / main / release-notes /… (par exemple 6.0.100)


Il semble qu'il y ait généralement un retard entre une nouvelle version de .NET qui est publiée, et ces agents prenant en charge cette version par défaut. Au moment de la rédaction du présent document, il y a un problème ouvert soulevé pour cela: github.com/dotnet/core/ Problèmes / 6907


Une idée comment cela fonctionne en utilisant l'éditeur classique?


Je suppose qu'il est utilisé .NET Core SDK


J'ai pu tirer parti de cette solution avec succès, mais je l'ai fait sans includepreViewVersions: true .



10
votes

Pour l'éditeur classique - Définissez l'agent sur Windows 2022 et assurez-vous d'utiliser la dernière version NuGet (j'ai utilisé 5.8 et cela a bien fonctionné).


1 commentaires

Je l'avais réglé sur Windows, ce qui ne fonctionne pas. Windows 2022 le fait.



10
votes

J'ai eu cette erreur lors de l'exécution d'un projet et de l'installation du SDK .NET 6.0 a résolu mon problème. https: // dotnet .microsoft.com / en-us / download / dotnet / merci-you / sdk-6.0.102-windows-x64-installer


0 commentaires

3
votes

J'ai obtenu cette erreur lorsque j'utilisais un pipeline sur .NET6 Core Project réalisé sur VS2022. Après avoir modifié le pool vMimage en windows-2022 à partir de windows-latest , les choses ont fonctionné pour moi.

Référence MS de la documentation p. >

a également ajouté la dernière version de Nugetinstalle versions nuget

trigger:
- master

pool:
  vmImage: 'windows-2022'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1
  inputs:
    versionSpec: '6.1'
    checkLatest: true

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(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)'


0 commentaires

0
votes

résolu : avec .net6 projet de base réalisé sur VS2022. Vous avez besoin d'utiliser une version du SDK .NET qui prend en charge .NET 6.0.

Avant .net La tâche de publication centrale doit ajouter une autre tâche ( en dessous d'un pour une version spécifique de SDK 6.0 )

variables:
- name: BuildParameters.packageType
  value: sdk
resources:
  repositories:
  - repository: self
    type: git
    ref: refs/heads/Develop
jobs:
- job: Job_1
  displayName: Agent job 1
  pool:
    vmImage: windows-2019
  steps:
  - checkout: self
  - task: NuGetToolInstaller@1
    displayName: 'Use NuGet '
  - task: NuGetCommand@2
    displayName: NuGet restore
    inputs:
      solution: Marielinas
  - task: UseDotNet@2
    displayName: Use .NET Core sdk 6.0.x
    inputs:
      packageType: $(BuildParameters.packageType)
      version: 6.0.x
      includePreviewVersions: true
  - task: DotNetCoreCLI@2
    displayName: dotnet publish
    inputs:
      command: publish
      arguments: -c release --output $(Build.ArtifactStagingDirectory)
      workingDirectory: Marielinas.ASP.NET6.0
  - task: AzureWebApp@1
    displayName: 'Azure Web App Deploy: marielinasshop'
    inputs:
      azureSubscription: 37f84ce6-e4f1-4a03-b107-9c9a527dff4a
      appType: webApp
      appName: marielinasshop
      deployToSlotOrASE: true
      resourceGroupName: GreenLab
      package: $(Build.ArtifactStagingDirectory)/**/*.zip
...

mon yaml complet ressemble (à construire avec succès 26 May, 2022)

steps:
- task: UseDotNet@2
  displayName: 'Use .NET Core sdk 6.0.x'
  inputs:
    packageType: '$(Parameters.packageType)'
    version: 6.0.x
    includePreviewVersions: true


0 commentaires

2
votes

Un de mes collègues construise une console-appa vers .NET 6.0 dans vs 2022.

J'ai ouvert la solution dans VS 2019 et j'ai obtenu cette erreur exacte.

Cela a fonctionné comme un charme lorsque j'ai également utilisé VS 2022 ..


0 commentaires

1
votes

Mettre à jour Visual Studio vers VS2019 16.11.7 Mon problème résolu.


3 commentaires

Votre réponse pourrait être améliorée avec des informations de support supplémentaires. Veuillez modifier pour ajouter plus de détails, tels que des citations ou de la documentation, afin que d'autres puissent confirmer que votre réponse est correcte. Vous pouvez trouver plus d'informations sur la façon d'écrire de bonnes réponses dans le centre d'aide .


En raison des modifications de rupture de Microsoft, une mise à niveau de Visual Studio peut résoudre ce problème; Est ce à quoi il faisait référence, je crois: docs.microsoft.com/en-us/dotnet/core/compatibility/sdk/6.0/…


La question déclare clairement qu'il s'agit d'azur