我有一个长期稳定的Azure DevOps管道来部署.NET核心应用程序,并且在其中一个代理作业中,我有一些任务要使用[
{
"tagName": "foo",
"propA": "A",
"propA": "B"
},
{
"tagName": "bar",
"propA": "A",
"propA": "B"
}
]
命令来部署(删除和重新创建)某些数据库。
从现在开始,这个发布渠道一直在顺利进行。
我在代理作业中明确使用了.NET Core SDK 2.2,因此代理作业的第一个任务是安装SDK 2.2.100。此代理作业在带有VS2019代理池的托管Windows 2019上运行。
问题在于,几天前(9月27日),我在使用dotnet ef
命令之前正在使用dotnet restore
任务,突然开始使用.NET Core SDK 3.0 ,这打破了我的工作流程,因为SDK不再包含dotnet ef命令行工具。与之相关的代码也没有任何变化,也没有任何变化,所以我想微软方面有所改变。
之前:
之后:
我设法解决了这个问题,添加了一个新任务来安装EF工具(dotnet ef
),但这只是一个补丁。我需要了解错误的根本原因,以便了解管道或解决方案是否有问题-
有人知道这里发生了什么吗,还是有人可以帮助我修复管道,以使其强制使用SDK 2.2而不是应该使用SDK 3.0?
答案 0 :(得分:2)
上周五,我在管道中遇到了相同的问题。 构建失败,因为SDK无法识别正在执行的命令。
正如您已经描述的那样,VM现在使用最新版本的ASP .NET Core-> 3.0。 因此,我将下一步放在了Azure管道的顶部。yml。
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
packageType: 'sdk'
version: '2.2.*'
这也可以通过使用“任务”菜单中的以下选项进行正确设置来实现。 (使用您项目的SDK版本)
这可确保VM安装并使用正确版本的.NET Core SDK。 由于此更改,项目的构建在管道中使用.NET Core 2.2。*而不是.NET Core 3.0。
我希望该解决方案有效,并且可以回答您的问题。
答案 1 :(得分:2)
有人知道这里发生了什么吗,还是有人可以帮助我修复管道,以使其强制使用SDK 2.2而不是应该使用SDK 3.0?
我已经复制了这个问题。那是因为您使用的是旧版本 DotNetCoreInstaller
任务(0.*
)。
要解决此问题,您需要使用最新版本(2.*
),因此任务类似于:
- task: UseDotNet@2
displayName: 'Use .Net Core sdk 2.2.100'
inputs:
version: 2.2.100
测试详细信息:
当我在托管代理上使用旧版本DotNetCoreInstaller@0
时,在VS 2019上托管Windows 2019:
我得到了相同的结果:
但是当我将任务版本更改为UseDotNet@2
时,它可以正常工作:
此外,
所以我想微软方面有所改变。
是的,微软于2019-09-23发布了.NET Core 3.0.0。然后,VM使用最新版本的ASP .NET Core 3.0.100
。
希望这会有所帮助。
答案 2 :(得分:-1)