如何解决.net核心构建错误NETDSDK1061和警告MSB3277

我遇到了问题,我的AspNetCore.App-metapackage引用了较低版本的EntityFrameworkCore(2.1.2),而不是EfCore提供程序包(NpgSql,引用2.1.3)。 结果是警告MSB3277( 这是问题 )。 对此的快速修复是接受的答案。

另一个答案指出,我使用的是较低的Microsoft.AspNetCore.App软件包(当时为2.1.1),而不是上一个稳定版本(2.1.4)。 更改包版本是不可能的(见下图)。

在此处输入图像描述

我在类库项目中遇到了与Microsoft.NETCore.App相同的问题

我甚至没有注意到我使用了比现有更旧的元数据包。 直到今天,我总是检查,如果NuGet包管理器中有任何更新。 我使用了默认的项目模板,并且始终安装了最新的.NetCore SDK,相信这已经足够了。 不是。

在研究了这个问题之后,我发现,我可以强制我的项目使用特定的.NETCore.App或AspNetCore.App元数据包和软件包管理器控制台( Install-Package Microsoft.NETCore.App -Version 2.1.4或者Install-Package Microsoft.AspNetCore.App -Version 2.1.4 )。

在那个命令之后我有一个构建错误( NETSDK1061: The project was restored using Microsoft.NETCore.App version 2.1.4, but with current settings, version 2.1.0 would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. )。

我试图在这个问题上找到任何帮助,找到一些github问题(例如这个 )看起来非常相似,但实际上有所不同。 我找到了一个描述性的文档 ,但这并没有真正帮助我。

我从Rick Strahl那里找到了一篇非常有用的博客文章 ,解释了可用的软件包以及每个软件包的用途。 这是一件好事。

这是我的解决方案:

步骤1:执行Install-Package Microsoft.AspNetCore.App -Version [VersionOfYourChoice]和/或在包管理器控制台中执行Install-Package Microsoft.NETCore.App -Version [VersionOfYourChoice]

第2步:编辑.csproj,如下所示:

  netcoreapp2.1 2.1.4 <- add this line  <- alternative  

还有一个要点:如果你使用Win10,请帮个忙,检查已安装的.Net Core SDK / Runtimes等。 卸载你不需要的每个SDK / Runtimes (再次:检查Ricks blogpost)。 您只需要在一个项目中使用当前定位的那些。

例如:如果您正在处理一个.NETCore项目,并且您只使用版本2.1.4执行了这两个步骤 – 在编写本文时您只需要Microsoft .NET Core SDK 2.1.402。 为了清理一点,我卸载了每个.NET Core SDK / Runtimes / Packages,并从这里获取最新信息 。

注意:我按照Jeff Atwood的这篇博文来回答一个问题,这个问题花了我太久才解决。 我希望有帮助……

将此行添加到.csproj文件后,我仍然看到此问题。

 2.1.5 

将Version属性添加到Microsoft.AspNetCore.App包引用为我解决了这个问题。 我改变了这个:

  

对此:

  

@Joshit的答案中的第1步可能会自动执行此操作,但我已经拥有最新版本的Microsoft.AspNetCore.App。