DevOps CI 管道声明失败 Microsoft.Bcl.Build
DevOps CI pipe is failing claiming Microsoft.Bcl.Build
我有一个从 public 和私有 NuGet 存储库中提取的项目。这行得通。但似乎不起作用的是 CI 上的构建由于 Microsoft.Bcl.Build 而失败,它应该从 Nuget Restore Step
下载
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。
已尝试修复,comment/discussion 自初始 post 后跟进:
- 已尝试多个池,均失败。
- 这确实在 VS 2017 和 2019 中构建在各种桌面的专业版和企业版中。
- 错误是
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 下载没有显示错误或跳过。
- 以下修复无效:
- What does the Microsoft.Bcl.Build NuGet package do?
您是否在 Hosted 2019 平台上尝试过 MS DevOps,而不是使用 2017 Host?
Hosted Windows 2019 with VS2019
我最终删除了所有 BCL 依赖项并构建了许多变通方法。这不是一个小变化。不幸的是,因为这是 2 年前的事,我不知道我当时所做的细节。
我有一个从 public 和私有 NuGet 存储库中提取的项目。这行得通。但似乎不起作用的是 CI 上的构建由于 Microsoft.Bcl.Build 而失败,它应该从 Nuget Restore Step
下载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。
已尝试修复,comment/discussion 自初始 post 后跟进:
- 已尝试多个池,均失败。
- 这确实在 VS 2017 和 2019 中构建在各种桌面的专业版和企业版中。
- 错误是
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 下载没有显示错误或跳过。 - 以下修复无效:
- What does the Microsoft.Bcl.Build NuGet package do?
您是否在 Hosted 2019 平台上尝试过 MS DevOps,而不是使用 2017 Host?
Hosted Windows 2019 with VS2019
我最终删除了所有 BCL 依赖项并构建了许多变通方法。这不是一个小变化。不幸的是,因为这是 2 年前的事,我不知道我当时所做的细节。