週末中ずっとこれに苦労してきました。
Net Core 3 SDKプレビュー9(2019年9月4日リリース)の正常なビルドを取得できません。
私は単にパイプラインをセットアップしました:
ビルドステージ(4)で次のエラーが発生します。
エラー:.NET Core SDKが見つかりません。インストールされていること、およびglobal.jsonに指定されているバージョン(存在する場合)がインストールされているバージョンと一致することを確認してください。
エラーMSB4236:指定されたSDK 'Microsoft.NET.Sdk.Web'が見つかりませんでした。
手順2でglobal.json
を実装する前のNuget復元ステージ(3)で最初に同じエラーが発生したため、global.json
が正しく参照されていることがわかります。
パイプライン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)'
以下は私のために働いた。
次の変数を設定します。
variables:
MSBuildSDKsPath: 'C:\\hostedtoolcache\\windows\\dotnet\\sdk\\3.0.100-preview9-014004\\sdks'
グローバルjsonを設定する
- task: PowerShell@2
displayName: 'Global Json'
inputs:
targetType: 'inline'
script: 'dotnet new globaljson --sdk-version 3.0.100-preview9-014004'
また、注意すべき点の1つとして、Nuget 5
の使用に関する問題が発生しました。 Nuget 4.7.1
を使用しました。
.Net Core 3.0がついにリリースされました。最初のステップとして。Net Core 3.0.1をインストールするだけです。
- task: DotNetCoreInstaller@0
displayName: 'Install .net core 3.0.100'
inputs:
version: '3.0.100'
フル.yml
テストとアーティファクトが公開されたファイル。これを更新'FolderName/ProjectName.csproj'
これを実行する前に。
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'
コメントで提案されているように、使用する前に.net core preview 9をインストールする必要があります。
以下のコードを、useステートメントの前に置く必要があります。
- task: DotNetCoreInstaller@0
displayName: 'Install .net core 3.0 (preview)'
inputs:
version: '3.0.100-preview9-014004'
お役に立てれば。私はこのymlを使用して、Azure開発に基づいて構築しています。私はglobal.jsonを「忘れた」-それを追加し、うまくいった。
更新:作業中のパイプラインスクリプトの詳細
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とglobal.jsonはプロジェクトフォルダーのルートにあります。