web-dev-qa-db-ja.com

Visual StudioビルドがAzure DevopsのNet Core 3.0 SDKプレビュー9で失敗する

週末中ずっとこれに苦労してきました。

Net Core 3 SDKプレビュー9(2019年9月4日リリース)の正常なビルドを取得できません。

私は単にパイプラインをセットアップしました:

  1. 新しいSDKを使用する
  2. 新しいSDKを使用してglobal.jsonファイルを実装する
  3. Nuget 5.xとNuget restoreを使用してプレビューパッケージを正しく取得する
  4. Visual Studioソリューションの構築

ビルドステージ(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)'

enter image description here

6
David D

以下は私のために働いた。

次の変数を設定します。

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を使用しました。

1
Duncan Gichimu

.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'
0
fatihyildizhan

コメントで提案されているように、使用する前に.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はプロジェクトフォルダーのルートにあります。

0
SamuelD