Sdk Microsoft.AspNetCore.App 2.1.1升级“;“被项目阻止”;

Sdk Microsoft.AspNetCore.App 2.1.1升级“;“被项目阻止”;,sdk,.net-core,nuget,updates,nuget-package,Sdk,.net Core,Nuget,Updates,Nuget Package,我正在尝试将.net core 2.1项目升级到Nuget软件包的最新版本,如Microsoft.Extensions.DependencyInjection.Abstractations 2.1.1 但是,当我尝试升级“meta”包Microsoft.NETCore.App时,它被包引用Microsoft.NETCore.App阻止,我看到“被项目阻止”类似于。这是通过切换到SDK的更新版本来解决的,但是这不是这里的选项。。。因为现在还没有更新版本的SDK 我还看到了通过使用更新包引用手动编辑

我正在尝试将.net core 2.1项目升级到Nuget软件包的最新版本,如Microsoft.Extensions.DependencyInjection.Abstractations 2.1.1

但是,当我尝试升级“meta”包Microsoft.NETCore.App时,它被包引用Microsoft.NETCore.App阻止,我看到“被项目阻止”类似于。这是通过切换到SDK的更新版本来解决的,但是这不是这里的选项。。。因为现在还没有更新版本的SDK

我还看到了通过使用更新包引用手动编辑.csproj文件来升级特定包的方法,但我怀疑这是实现此目的的预期方法


我该怎么做?目前,我只是手动添加了我实际使用的包引用,并删除了元包,但我无法想象这是实现此目的的预期方式。

编辑我的.csproj文件并添加以下行对我有效:

<PackageReference Include="Microsoft.NetCore.App" Version="2.1.1" />

简单。我之前一直在寻找一个解决方案,我所要做的就是把它添加到受影响的项目中

  <PropertyGroup>
    <RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
  </PropertyGroup>

2.1.1
此外,对于.NET Core 3及更高版本

   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
   </PropertyGroup>

netcoreapp3.1

还有一个回答指出,某些项目需要.NET核心应用程序NuGet包。在.NET Core 3之后,您将不再需要它。

正如@Simon_Weaver所说,如果没有指定版本,并且系统中不存在2.1.301 SDK,则会发生这种情况。

我只安装了
Microsoft.NETCore.App 2.1.1
窗口,无法更新到
Microsoft.NETCore.App 2.1.2
,因为它显示“被项目阻止”:

在上面的图片中,它显示我已经在使用最新版本,因为我做了以下操作

1-在此处下载.NET Core SDK的最新版本(目前为v2.1.302):

2-在Visual Studio
软件包管理器控制台
或Windows PowerShell中安装并运行以下命令。它应显示以下内容:

PM> dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.1.302
 Commit:    9048955601

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17134
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.302\

Host (useful for support):
  Version: 2.1.2
  Commit:  811c3ce6c0

.NET Core SDKs installed:
  1.0.0-rc4-004771 [C:\Program Files\dotnet\sdk]
  1.0.0 [C:\Program Files\dotnet\sdk]
  1.0.3 [C:\Program Files\dotnet\sdk]
  1.0.4 [C:\Program Files\dotnet\sdk]
  1.1.0 [C:\Program Files\dotnet\sdk]
  2.0.2 [C:\Program Files\dotnet\sdk]
  2.1.2 [C:\Program Files\dotnet\sdk]
  2.1.4 [C:\Program Files\dotnet\sdk]
  2.1.100 [C:\Program Files\dotnet\sdk]
  2.1.101 [C:\Program Files\dotnet\sdk]
  2.1.104 [C:\Program Files\dotnet\sdk]
  2.1.105 [C:\Program Files\dotnet\sdk]
  2.1.200 [C:\Program Files\dotnet\sdk]
  2.1.201 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.300-preview2-008533 [C:\Program Files\dotnet\sdk]
  2.1.300-rc1-008673 [C:\Program Files\dotnet\sdk]
  2.1.300 [C:\Program Files\dotnet\sdk]
  2.1.301 [C:\Program Files\dotnet\sdk]
  2.1.302 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.0-preview2-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.0-rc1-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.0-preview2-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.0-rc1-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 1.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.0-preview2-26406-04 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.0-rc1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download
PM> 

在我的例子中,这是由于
Microsoft.AspNetCore.App
上缺少
Version
属性造成的

出于某种原因,在创建WebApi项目时,该包的引用方式如下:

<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1" />

添加缺少的属性解决了生成服务器上更新和生成的所有问题

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />

就我而言,@Patrick的回答是正确的。至少针对VS 2017(15.8.9),安装了SDK文件“dotnet-SDK-2.1.403-win-x64.exe”

症状:创建新的Web项目会将Aspnetcore.App版本设置为2.1,即使安装了最新的SDK。试图通过NuGet Manager更改版本时,响应为“project blocked”

解决方案:向CSPROJ中的参考添加Version=“2.1”,如下所示:

<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1" />

保存/重新打开后,NuGet manager将允许选择SDK的其他版本。请注意,直接添加Version=“2.1.5”,然后保存CSProj文件将自动触发升级/恢复


谢谢@Patrick,我在csproj文件中两次看到了下面这句话

<PackageReference Include="Microsoft.AspNetCore.StaticFiles " Version="2.2.0" />

只需删除副本即可解决问题

  • 右键单击您的项目
  • 点击“属性”
  • 相应地改变“目标框架”
  • 保存并关闭“属性”窗口。 这将自动解决问题,否则您可以转到Nuget并自行升级程序集

  • 可能的相关副本:整个项目被设计阻止。Asp.NET包需要匹配的SDK才能正确运行。更新它们oob不是一个选项。在执行此操作之前,您可能希望阅读此>github.com/aspnet/AspNetCore/issues/9097#issuecomment-517922943中的信息。。。和来自的第4节(对于某些软件包,更新按钮被禁用,并显示一条消息,说明它“被SDK隐式引用”(或“自动引用”)。此消息表示该包是更大框架或SDK的一部分,不应单独更新…这适用于以下常用包:Microsoft.AspNetCore.All Microsoft.AspNetCore.App Microsoft.NETCore.App NETStandard.Library)您的评论可能会有所帮助,但您可能希望阅读发布日期。尤其是今年;)我已经为一个新项目没有2.1可用性的问题争论了好几个小时了。决定尝试使用这种方法。不走运。错误如下:“Microsoft.NETCore.App”的PackageReference包含在您的项目中。此包由.NET SDK隐式引用,您通常不需要从项目中引用它。有关详细信息,请参阅TipShare C:\Program Files\dotnet\sdk\2.1.201\sdk\Microsoft.NET.sdk\build\Microsoft.NET.sdk.DefaultItems.targets 198。我尝试了此操作。请确保除了sdk之外,还安装了2.1.1运行时。运行
    dotnet--info
    ,您应该会看到
    Microsoft.NETCore.App 2.1.1[C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    如果您安装了2.1.1运行时,这是有效的,而且据我所知,这是让它工作的唯一方法(今天)。大家应该在否决投票前核实信息。我同意,除了上面Nicholas的答案之外,这是(或应该是)必需的…不要忘记.net 2.1引导版本是3.7,而.net 2.2引导版本是4.3。这对我来说很有效,但请注意,一旦创建了新项目,它不包含提到的配置代码。因此,仍然引用2.1.0库,而不是2.1.1。这是Visual Studio中的一个bug,因为它将针对安装的最新SDK吗?@Megrez7 Am实际上面临着这个问题。。如果我有一些确认,我会向您报告我已经安装了2.1.302 SDK,虽然这“强制”了包到指定的版本,但这对我来说似乎是一个bug,因为项目应该这样做