我有一个ASP.NET Core 2.1,并添加了一个Microsoft.WindowsAzure.Storage的nuget包,但是在推送代码回购之后,运行构建代理时,构建管道会发生包错误,是否有必要添加其他任何内容除了构建,还原,测试和发布之外的构建管道中的代理。
信息:Azure管道托管代理已更新为包含.Net Core 3.x SDK /运行时以及2.2和2.1。除非您为项目锁定了一个SDK版本,否则可能会选择3.x SDK,与以前的版本相比,该行为可能具有破坏性。
这是运行管道时显示的错误。
答案 0 :(得分:5)
我在2.1.505版本中遇到了相同的问题,现在我在使用版本3.1.101的同时在yaml管道中对.NET Core使用变量的以下配置和安装程序步骤,并解决了我的问题。
find . -type f -name 'output.tgz' -execdir tar xfz {} +
答案 1 :(得分:1)
如错误信息所示,建议不要调用latest 3.x sdk
来恢复,构建,测试和发布针对asp .net core 2.1
的项目。
尽管在大多数情况下,构建可以通过,但是“发布”步骤(任务)可能会遇到此问题:
要解决此问题,请执行以下操作:
在运行诸如.net core
之类的任务之前,我们应该指定我们要使用的restore,build,test,publish
sdk版本。
我们可以在其他诸如此类的.net核心任务之前添加use .net core sdk task,以获取与.net core 2.1.x
相关的版本以执行以下任务,而不是使用.net core 3.x sdk
:
经典界面:
指定2.1.x+Include Preview Versions
将获取2.1 sdk的最新版本。
Yaml:
如果您使用的是yaml格式而不是传统的UI格式来配置管道,则其yaml格式类似于以下内容:
steps:
- task: UseDotNet@2
displayName: 'Use .Net Core sdk 2.1.x'
inputs:
packageType: sdk
version: 2.1.x
installationPath: $(Agent.ToolsDirectory)/dotnet
includePreviewVersions: true
希望它会帮助我,如果我误解了什么,可以随时纠正我:)
答案 2 :(得分:1)
以下步骤对我有用:
答案 3 :(得分:-1)
将.csproj中的这一行添加到PropertyGroup标记中
<TargetLatestRuntimePatch>false</TargetLatestRuntimePatch>