DevOps CI管道无法声明Microsoft.Bcl.Build

时间:2019-04-19 20:35:20

标签: visual-studio devops visual-studio-2019 base-class-library

我有一个来自公共和私人NuGet存储库的项目。这可行。但是似乎没有用的是,由于Microsoft.Bcl.Build,CI上的构建失败了,应该从Nuget Restore步骤中下载

trigger:
- master

pool:
  vmImage: 'windows-2019'
  demands:
  - msbuild
  - visualstudio
  - VSTest
  - DotNetFramework

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

steps:
- task: NuGetToolInstaller@0
  displayName: 'Use NuGet 4.4.1'
  inputs:
    versionSpec: 4.4.1

- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    restoreSolution: '$(Parameters.solution)'
    feedsToUse: config
    nugetConfigPath: .nuget/NuGet.Config

- task: VSBuild@1
  displayName: 'Run Build on solution.'
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)" /p:BclBuildImported=Ignore'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    logFileVerbosity: 'diagnostic'

在上面的示例中,我尝试使用和删除/p:BclBuildImported=Ignore'

我正在使用的库中包含BCL ref,因此无法删除该依赖项。当我将其切换到核心时,此代码会崩溃。

当我在Visual Studio 2019 Ent中构建所有内容时,一切正常,而Pro仅拒绝在Hosted 2017平台上基于MS DevOps构建。

自首次发布以来,已尝试修复并进行评论/讨论:

  1. 尝试了多个池,但都失败了。
  2. 它确实在各种桌面上的Pro和Enterprise VS 2017和2019中构建。
  3. 即使已安装所有软件包,错误仍然是This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is ..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets.,并且Nuget下载没有显示任何错误或跳过。
  4. 以下修复程序无效:
    1. How to bypass Microsoft.Bcl.Build warning
    2. What does the Microsoft.Bcl.Build NuGet package do?

1 个答案:

答案 0 :(得分:0)

您是否在Hosted 2019平台上尝试了MS DevOps,而不是使用2017 Host?

Hosted Windows 2019 with VS2019