如何在VS 2017中更新Microsoft.NETCore.App SDK的版本

时间:2017-07-19 23:32:31

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

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

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

  

错误一个或多个项目与之不兼容   .NETCoreApp,版本= 1.0。

     

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

当我选中Dependencies -> SDK -> Microsoft.NETCore.App -> Properties时,它会显示1.0.4版本,SDK Root显示为C:\Users\username\.nuget\packages\microsoft.netcore.app\1.0.4

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

当我转到Nuget Package Manager来更新SDK版本时,它会显示其Autoreferenced并且更新按钮被禁用。

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

另外,为什么VS工作室会引用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中打开转换项目时,我看到依赖关系 - > SDK - > Microsoft.NETCore.App - 属性版本为1.0.4,SDK根为C:\Users\username\.nuget\packages\microsoft.netcore.app\1.0.4

现在我在同一个解决方案中添加了新项目,但新项目的依赖项 - > SDK - > Microsoft.NETCore.App - >属性版本为1.1.2,SDK根目录为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中的一个错误吗?

3 个答案:

答案 0 :(得分:3)

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

如果你看到这样的一行:

<RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion>

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

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

答案 1 :(得分:0)

我建议您至少更新每个项目依赖项至1.1.0版,然后再尝试更改版本。毕竟确保清理并重建解决方案。

答案 2 :(得分:0)

就我而言,我有一个使用 .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.103 2

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