J'ai eu du mal avec celui-ci tout le week-end.
Je ne peux pas obtenir une version réussie pour Net Core 3 SDK Preview 9 (publié le 4 septembre 2019).
J'ai créé un pipeline uniquement pour:
Je reçois les erreurs suivantes avec l'étape de construction (4):
Erreur: impossible de localiser le SDK .NET Core. Vérifiez qu'il est installé et que la version spécifiée dans global.json (le cas échéant) correspond à la version installée.
Erreur MSB4236: le SDK "Microsoft.NET.Sdk.Web" spécifié est introuvable.
J'obtenais initialement la même erreur lors de l'étape de restauration de Nuget (3) avant d'implémenter le global.json
à l'étape 2, donc je connais le global.json
est correctement référencé.
Pipeline YAML:
pool:
name: Azure Pipelines
demands:
- msbuild
- visualstudio
steps:
- task: UseDotNet@2
displayName: 'Use .Net Core sdk 3.0.100-preview9-014004'
inputs:
version: '3.0.100-preview9-014004'
includePreviewVersions: true
- powershell: |
$globaljson = '{"sdk": {"version": "3.0.100-preview9-014004"}}';
$globaljson | out-file './test.app/global.json' -Encoding UTF8
displayName: 'Global Json'
- task: NuGetToolInstaller@1
displayName: 'Use NuGet 5.x'
inputs:
versionSpec: 5.x
checkLatest: true
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: '$(Parameters.solution)'
- task: VSBuild@1
displayName: 'Build solution **\*.sln'
inputs:
solution: '$(Parameters.solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
Ce qui suit a fonctionné pour moi.
Définissez la variable suivante:
variables:
MSBuildSDKsPath: 'C:\\hostedtoolcache\\windows\\dotnet\\sdk\\3.0.100-preview9-014004\\sdks'
Définir le json global
- task: PowerShell@2
displayName: 'Global Json'
inputs:
targetType: 'inline'
script: 'dotnet new globaljson --sdk-version 3.0.100-preview9-014004'
En outre, une chose à noter, j'ai rencontré des problèmes en utilisant Nuget 5
. et j'ai utilisé Nuget 4.7.1
.
.Net Core 3.0 est enfin disponible. Il vous suffit d'installer . Net Core 3.0.1 dans un premier temps:
- task: DotNetCoreInstaller@0
displayName: 'Install .net core 3.0.100'
inputs:
version: '3.0.100'
Plein .yml
fichier avec test et publication d'artefacts. Mettre à jour ce 'FolderName/ProjectName.csproj'
avant d'exécuter ceci.
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
variables:
buildConfiguration: 'Release'
steps:
- task: DotNetCoreInstaller@0
displayName: 'Install .net core 3.0.100'
inputs:
version: '3.0.100'
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Test/*.csproj'
arguments: '--configuration $(buildConfiguration)'
- script: dotnet build --configuration $(buildConfiguration)
displayName: 'dotnet build $(buildConfiguration)'
- task: DotNetCoreCLI@2
displayName: 'dotnet publish --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
inputs:
command: publish
publishWebProjects: false
projects: 'FolderName/ProjectName.csproj'
arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: true
- task: PublishBuildArtifacts@1
displayName: 'publish artifacts'
Comme suggéré dans les commentaires, vous devez installer .net core preview 9 avant de pouvoir l'utiliser.
Vous devez mettre le code ci-dessous avant votre déclaration d'utilisation:
- task: DotNetCoreInstaller@0
displayName: 'Install .net core 3.0 (preview)'
inputs:
version: '3.0.100-preview9-014004'
J'espère que cela t'aides. J'utilise ce yml pour construire sur les devops Azure. J'ai "oublié" le global.json - l'a ajouté et cela a fonctionné.
Mise à jour: Plus de mon script de pipeline de travail
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: DotNetCoreInstaller@0
displayName: 'Install .net core 3.0 (preview)'
inputs:
version: '3.0.100-preview9-014004'
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
Azure-pipelines.yml et global.json se trouvent à la racine de mon dossier de projet.