我成功地将项目更新为netcoreapp2.2。我可以还原nuget程序包并构建项目,而不会出现任何问题。我使用CD / CI,并且在构建服务器上,还原nuget时收到错误消息。这些来自日志:
2018-12-14T12:35:33.4556576Z ## [错误] nuget命令失败,出现退出代码(1)和错误(NU1607:为Microsoft.AspNetCore.Authentication.Abstractions检测到版本冲突。直接从该包引用该包解决该问题的项目。 PM.Service.API(> = 1.0.0)-> Microsoft.AspNetCore.Mvc.Formatters.Xml(> = 2.2.0)-> Microsoft.AspNetCore.Mvc.Core(> = 2.2.0)-> Microsoft。 AspNetCore.Authorization.Policy(> = 2.2.0)-> Microsoft.AspNetCore.Authentication.Abstractions(> = 2.2.0) PM.Service.API(> = 1.0.0)-> Microsoft.AspNetCore.App(> = 2.1.0)-> Microsoft.AspNetCore.Authentication.Abstractions(> = 2.1.0)。 NU1607:为Microsoft.AspNetCore.Hosting检测到版本冲突。直接从项目中引用该软件包即可解决此问题。 TM.Service.API(> = 1.0.0)-> Microsoft.AspNetCore.Hosting.WindowsServices(> = 2.2.0)-> Microsoft.AspNetCore.Hosting(> = 2.2.0) TM.Service.API(> = 1.0.0)-> Microsoft.AspNetCore.App(> = 2.1.0)-> Microsoft.AspNetCore.Hosting(> = 2.1.0)。
在我的项目中,我有以下软件包参考:
如何解决此问题? 谢谢
答案 0 :(得分:4)
谢谢您的回答。我发现了问题。我的CD进程中有一个任务“ NuGet工具安装程序”。我将nuget.exe的版本从4.3.0更新到4.8.1,现在可以使用了。 谢谢
答案 1 :(得分:1)
该错误是指您已安装的多个软件包都依赖于这些软件包:
Microsoft.AspNetCore.Authentication.Abstractions
Microsoft.AspNetCore.Hosting
但是不同的软件包依赖于不同的版本。注意要求的不同版本号:“(> = 1.0.0)”,“(> = 2.1.0)”,“(> = 2.2.0)”。
确实,版本2.2.0可以满足所有这些条件,但是仍然很困惑,因此它不知道要安装哪个版本。
解决方案是“直接从项目中引用程序包”,换句话说,显式安装这两个程序包。
答案 2 :(得分:0)
PM.Service.API
引用了Microsoft.AspNetCore.App
,它是2.1.x版
您还需要升级您的类库
答案 3 :(得分:0)
我有一个与Dim_Ka类似的问题。我正在使用Nuget v4.3。我尝试在执行nuget还原时禁用缓存,但那没有用。我已更新到Nuget v4.8.1,并且nuget restore成功运行。
之后,我回到Nuget 4.3只是为了确认4.3是引起该问题的原因,并且它再次开始失败。然后将其更改回4.8.1,然后再次开始工作。
这是我收到的错误:
nuget命令失败,并显示退出代码(1)和错误(NU1607:为Microsoft.AspNetCore.Authentication.Core检测到版本冲突。直接从项目中引用该软件包即可解决此问题。 ThisApp.API(> = 1.0.0)-> Microsoft.AspNetCore.Mvc.Versioning(> = 3.1.1)-> Microsoft.AspNetCore.Mvc.Core(> = 2.2.0)-> Microsoft.AspNetCore.Authentication核心(> = 2.2.0) ThisApp.API(> = 1.0.0)-> Microsoft.AspNetCore.App(> = 2.1.0)-> Microsoft.AspNetCore.Authentication.Core(> = 2.1.0) D:\ a \ 1 \ s \ ThisApp.API \ ThisApp.API.csproj中的错误 NU1607:检测到Microsoft.AspNetCore.Authentication.Core的版本冲突。直接从项目中引用该软件包即可解决此问题。 ThisApp.API(> = 1.0.0)-> Microsoft.AspNetCore.Mvc.Versioning(> = 3.1.1)-> Microsoft.AspNetCore.Mvc.Core(> = 2.2.0)-> Microsoft.AspNetCore.Authentication核心(> = 2.2.0) ThisApp.API(> = 1.0.0)-> Microsoft.AspNetCore.App(> = 2.1.0)-> Microsoft.AspNetCore.Authentication.Core(> = 2.1.0)。) 软件包还原失败
我认为这与您不应该为Microsoft.Aspnetcore.App软件包指定版本有关。 Nuget 4.3可能无法正确处理此问题: https://docs.microsoft.com/en-us/aspnet/core/migration/21-to-22?view=aspnetcore-2.2&tabs=visual-studio#update-package-references
答案 4 :(得分:0)
我在本地安装了ASPNetCore 2.2,在项目道具中将其重定向到2.2,删除了nuget PM中现有的2.1引用,然后通过nuget安装了Microsoft.Aspnetcore(2.2)。固定。
答案 5 :(得分:0)
我有同样的问题。 在本地,该项目可以很好地还原Nuget程序包,但是,一旦我开始使用Azure Pipelines,我就会收到版本冲突错误。
我最终在yaml文件中对此进行了更改:
- task: NuGetToolInstaller@0
inputs:
versionSpec: '4.8.1' <-- Define the Nuget version here
之后,在我的管道中恢复Nuget软件包的步骤就很好了。
答案 6 :(得分:0)
更新配置: 将nuget.exe的版本从4.3.0更新到4.8.1,现在可以使用。看起来旧版本存在一些问题
如果yaml文件随后进行如下更新,