【问题标题】:Can't upgrade my solution from v2.1.0 to v2.1.3无法将我的解决方案从 v2.1.0 升级到 v2.1.3
【发布时间】:2019-01-30 20:25:42
【问题描述】:

我正在开发一个 .net Core v2.1 应用程序,在开发过程中我尝试定期更新我的 NuGET 包。

我无法更新我的Microsoft.AspNetCore.App,它现在是 v2.1.1,但最新的稳定版是 v2.1.3 我也无法将 Microsoft.NETCore.App 从 v2.1.0 更新到 v2.1.3

我已经读了好几个小时了。 我确实拥有所有必要的 SDK:

>dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.1.401
 Commit:    91b1c13032

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.401\

Host (useful for support):
  Version: 2.1.3
  Commit:  124038c13e

.NET Core SDKs installed:
  2.1.4 [C:\Program Files\dotnet\sdk]
  2.1.101 [C:\Program Files\dotnet\sdk]
  2.1.103 [C:\Program Files\dotnet\sdk]
  2.1.104 [C:\Program Files\dotnet\sdk]
  2.1.201 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.302 [C:\Program Files\dotnet\sdk]
  2.1.400 [C:\Program Files\dotnet\sdk]
  2.1.401 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  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.All 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  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.AspNetCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.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 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

我正在运行 VS2017 Community Edition v15.8.1

当我尝试使用Manage NuGet for solution .. 进行更新时,我收到Blocked by project 消息并且无法选择较新的版本。

我用

阅读
Install-Package Microsoft.NETCore.App -Version 2.1.3

Package Manager Console 也可以。 但后来我得到这个错误:

NETSDK1061: The project was restored using Microsoft.NETCore.App version 2.1.3, 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. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore.

我已经阅读了它所指的页面,但不明白我需要做什么来解决这个问题。

我也不明白为什么这会变得如此困难。我没有从 v2 升级到 v3,我什至没有从 v2.1 升级到 v2.2 我只是想从 v2.1.0 升级到 v2.1.3。

任何帮助将不胜感激。

【问题讨论】:

    标签: .net-core asp.net-core-2.1


    【解决方案1】:

    您需要做的是明确告诉 Visual Studio 您希望处理的 SDK 版本。为此,请将版本标记添加到 .csproj 文件中的项目节点。 这将告诉 VS 使用指定的 SDK 版本编译项目。现在您还需要告诉它要使用哪个运行时版本,否则它会编译但不会运行。为此,您需要添加一个运行时节点,其中还指定了版本。 这看起来像这样......

    <Project Sdk="Microsoft.NET.Sdk.Web" Version="2.1.3">
      <PropertyGroup>
        <RuntimeFrameworkVersion>2.1.3</RuntimeFrameworkVersion>
      </PropertyGroup>
      <PropertyGroup>
        <TargetFramework>netcoreapp2.1</TargetFramework>
        ....
      </PropertyGroup>
    
      ...
    </Project>
    

    某些包,例如 Microsoft.NETCore.App 可以通过 Nuget 包管理器安装,但如果它们高于项目的版本,它们将无法工作。

    希望这会有所帮助。

    【讨论】:

    • 它工作正常。谢谢。每次发布新版本的 SDK 时,我是否需要再次更改我的 .csproj 文件?
    • 不幸的是,是的。显然,.net core 的每个新版本(甚至是次要版本)都带有自己的 SDK,安装 SDK 后,您必须更新您的 .csproj 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 2018-01-09
    • 2021-08-29
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多