Azure Devops 构建在 localhost 不在 .NET Core 2.2 上时抛出错误
Azure Devops build throws error where localhost does not on .NET Core 2.2
我正在更新过去 2 年 运行 稳定的网站后端。有人问我在我的本地主机上得到了 运行 的一些小更新(大约 5 行代码更新),但是我的 devops 构建管道抛出错误:
Package Microsoft.AspNetCore.Identity.EntityFrameworkCore 2.2.0 is not compatible with netcoreapp2.2 (.NETCoreApp,Version=v2.2). Package Microsoft.AspNetCore.Identity.EntityFrameworkCore 2.2.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
Package Microsoft.EntityFrameworkCore.SqlServer 2.2.4 is not compatible with netcoreapp2.2 (.NETCoreApp,Version=v2.2). Package Microsoft.EntityFrameworkCore.SqlServer 2.2.4 supports: netstandard2.0 (.NETStandard,Version=v2.0)
One or more packages are incompatible with .NETCoreApp,Version=v2.2.
考虑到我让它在我的本地主机上工作,我期待一切正常。
我不太热衷于将所有内容都更新到最新版本的 .NET,因为我真的不想像更新 5 行代码那样重写太多工作正常的代码。
抛出错误的屏幕截图:
在提交中我还看到了 storage.ide-shm 和 storage.ide-wal 的变化。
看起来失败是因为在我的构建过程中 NuGet 包还原,这是由 yml 中的任务触发的。我正在构建项目的 yml 文件:
# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
name: $(Build.SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/myprojectname.API.csproj'
buildConfiguration: 'Release'
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core sdk'
inputs:
packageType: sdk
version: 2.2.203
installationPath: $(Agent.ToolsDirectory)/dotnet
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'select'
- script: dotnet restore
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
clean: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
如何在不升级到最新版本的 .NET 的情况下使构建再次运行。
Azure Devops build throws error where localhost does not on .NET Core 2.2
过时版本的 nuget 可能会发生此错误。具体来说,4.0.0 出现了这个问题。
要解决此问题,您可以尝试添加 nuget 版本安装程序任务,您可以 运行 作为构建步骤的一部分来升级构建管道中的 nuget 运行ning 版本:
- task: NuGetToolInstaller@1
displayName: 'Use NuGet 6.1.0'
inputs:
versionSpec: 6.1.0
checkLatest: true
注意:在任务 nuget restore 任务之前添加此任务。
我正在更新过去 2 年 运行 稳定的网站后端。有人问我在我的本地主机上得到了 运行 的一些小更新(大约 5 行代码更新),但是我的 devops 构建管道抛出错误:
Package Microsoft.AspNetCore.Identity.EntityFrameworkCore 2.2.0 is not compatible with netcoreapp2.2 (.NETCoreApp,Version=v2.2). Package Microsoft.AspNetCore.Identity.EntityFrameworkCore 2.2.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
Package Microsoft.EntityFrameworkCore.SqlServer 2.2.4 is not compatible with netcoreapp2.2 (.NETCoreApp,Version=v2.2). Package Microsoft.EntityFrameworkCore.SqlServer 2.2.4 supports: netstandard2.0 (.NETStandard,Version=v2.0)
One or more packages are incompatible with .NETCoreApp,Version=v2.2.
考虑到我让它在我的本地主机上工作,我期待一切正常。
我不太热衷于将所有内容都更新到最新版本的 .NET,因为我真的不想像更新 5 行代码那样重写太多工作正常的代码。
抛出错误的屏幕截图:
在提交中我还看到了 storage.ide-shm 和 storage.ide-wal 的变化。
看起来失败是因为在我的构建过程中 NuGet 包还原,这是由 yml 中的任务触发的。我正在构建项目的 yml 文件:
# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
name: $(Build.SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/myprojectname.API.csproj'
buildConfiguration: 'Release'
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core sdk'
inputs:
packageType: sdk
version: 2.2.203
installationPath: $(Agent.ToolsDirectory)/dotnet
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'select'
- script: dotnet restore
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
clean: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
如何在不升级到最新版本的 .NET 的情况下使构建再次运行。
Azure Devops build throws error where localhost does not on .NET Core 2.2
过时版本的 nuget 可能会发生此错误。具体来说,4.0.0 出现了这个问题。
要解决此问题,您可以尝试添加 nuget 版本安装程序任务,您可以 运行 作为构建步骤的一部分来升级构建管道中的 nuget 运行ning 版本:
- task: NuGetToolInstaller@1
displayName: 'Use NuGet 6.1.0'
inputs:
versionSpec: 6.1.0
checkLatest: true
注意:在任务 nuget restore 任务之前添加此任务。