【问题标题】:How to update version of Microsoft.NETCore.App SDK in VS 2017如何在 VS 2017 中更新 Microsoft.NETCore.App SDK 的版本
【发布时间】:2017-07-19 23:32:30
【问题描述】:

我有最初使用 VS 2015 开发的 ASP.NET Core API 项目。我安装了 VS 2017 并让它转换项目。
然后我转到项目属性 -> 应用程序 -> 目标框架并将目标框架更改为 .NETCoreApp 1.1。

一旦我这样做了,我就会得到 2 个错误

错误一个或多个项目不兼容 .NETCoreApp,版本=v1.0。

错误项目 Api 与 netcoreapp1.0 (.NETCoreApp,Version=v1.0) 不兼容。项目Api支持:netcoreapp1.1 (.NETCoreApp,版本=v1.1)

当我检查Dependencies -> SDK -> Microsoft.NETCore.App -> Properties 时,它显示版本1.0.4SDK RootC:\Users\username\.nuget\packages\microsoft.netcore.app\1.0.4

我已经在我的机器上安装了Microsoft.NETCore.App SDK 版本1.1.2

当我转到 Nuget 包管理器更新 SDK 版本时,它显示其 Autoreferenced 并且更新按钮被禁用。

如何将项目的 SDK 版本更新为1.1.2

还有为什么 VS studio 从 C:\Users\username\.nuget\packages\microsoft.netcore.app 而不是 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.2 引用 SDK

更新 1

其实1.1.2不是SDK版本。 As of 7/20/2017 最新的 SDK 版本是 1.0.4,运行时版本是 1.1.2 在我的机器上,我安装了 C:\Program Files\dotnet\sdk\1.0.4 SDK 和 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.2 运行时。

正如我之前提到的,当我在 VS 2017 中打开转换后的项目时,我看到 Dependencies -> SDK ->Microsoft.NETCore.App - Properties version is 1.0.4 and SDK Root is C:\Users\username\.nuget\packages\microsoft.netcore.app\1.0.4

现在我在同一个解决方案中添加了新项目,但是新项目的 Dependencies -> SDK ->Microsoft.NETCore.App -> 属性版本是 1.1.2 和 SDK root C:\Users\username\.nuget\packages\microsoft.netcore.app\1.1.2

这里不知道哪个是正确的,转换项目的SDK版本还是新添加项目的SDK版本?

事实上,如果在 VS 2017 中创建一个全新的项目,我会看到它的依赖项 -> SDK ->Microsoft.NETCore.App -> 属性版本是 1.1.2

1.1.2 SDK 甚至没有可用的 SDK。为什么 VS 2017 将运行时版本显示为 SDK 版本

这是 VS 2017 中的错误吗?

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc .net-core visual-studio-2017 coreclr


    【解决方案1】:

    右键单击您的项目并编辑您的 csproj 文件。

    如果你看到这样的一行:

    <RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion>
    

    然后将其更新为1.1.2 或删除此行。然后恢复包(可能用命令行dotnet restore,不知道VS会不会自动恢复)。

    这样您可以将Microsoft.NETCore.App 更新为1.1.2,这应该可以解决您的问题。

    【讨论】:

    • @LP13 我认为Microsoft.NETCore.App 的版本实际上是运行时版本。如您所见,如果您更改 csproj 文件中的RuntimeFrameworkVersionMicrosoft.NETCore.App 的版本将相应更改。所以我认为1.1.2 对你来说是正确的。 1.0.4不仅是最新的SDK版本,也是.NET Core 1.0的另一个运行时版本,你可以在github.com/dotnet/core/blob/master/release-notes/…看到它
    • 是的,你是对的,还有一个运行时版本1.0.4。它安装在我的机器上。非常令人困惑的是,在 VS 中它被列在 SDK 下。他们应该将 Dependencies 下的文件夹重命名为 runtime 或其他名称
    【解决方案2】:

    我建议您至少将每个项目依赖项更新到版本 1.1.0,然后再次尝试更改版本。毕竟,请务必清理并重建您的解决方案。

    【讨论】:

      【解决方案3】:

      就我而言,我有一个使用 .NET Core 3.1 的项目,我想更新到 5.0,这是目前的最新版本。在csproj文件中,我把减号前面的那一行删掉了,加了加号前面的那一行,如下图1

      <Project Sdk="Microsoft.NET.Sdk.Web">
      
        <PropertyGroup>
      - <TargetFramework>netcoreapp3.1</TargetFramework>
      +    <TargetFramework>net5.0</TargetFramework>
        </PropertyGroup>
      
      </Project>
      

      然后,我创建了一个名为 global.json 的文件,其内容如下:

      {
        "sdk": {
          "version": "5.0.103"
        }
      }
      

      为此,我使用了命令:dotnet new globaljson --sdk-version 5.0.1032

      最后,我编译并运行了应用程序并工作了!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-31
        • 1970-01-01
        • 2021-12-18
        • 1970-01-01
        • 2017-10-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多