为什么我不应该更新asp.net核心中的所有依赖项?

为什么我不应该更新asp.net核心中的所有依赖项?,asp.net,asp.net-core,Asp.net,Asp.net Core,我按照以下步骤使用模板创建了一个应用程序 然后,右键单击引用并选择Manage Nuget Packages。。。要更新所有依赖项,请执行以下操作: 恢复后,我成功构建了解决方案: 但是我无法创建新的控制器,我不知道错误来自哪里 我确信在更新之前,我可以使用这种方式创建新的控制器。更新后,它不是 我如何解决这个问题 更新: My project.json: 我正在使用VS 2015和更新3 更新2: 我已经根据@Tseng的评论更新了工具。但我仍然无法创建新控制器: 它需要依赖项:Microso

我按照以下步骤使用模板创建了一个应用程序

然后,右键单击引用并选择Manage Nuget Packages。。。要更新所有依赖项,请执行以下操作:

恢复后,我成功构建了解决方案:

但是我无法创建新的控制器,我不知道错误来自哪里

我确信在更新之前,我可以使用这种方式创建新的控制器。更新后,它不是

我如何解决这个问题

更新:

My project.json:

我正在使用VS 2015和更新3

更新2:

我已经根据@Tseng的评论更新了工具。但我仍然无法创建新控制器:

它需要依赖项:Microsoft.NetCore.App版本1.1.0。 我尝试添加,但没有成功:


它说:Microsoft.NetCore.App不支持.Net Framework 4.6.1

现在我可以看到你的project.json了,我看到了问题:你没有更新你的工具部分

"tools": {
  "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
  "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
  "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
  "Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final",
  "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
    "version": "1.0.0-preview2-final",
    "imports": [
      "portable-net45+win8"
    ]
  }
它仍然使用旧的工具

"tools": {
  "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final",
  "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
  "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
  "Microsoft.Extensions.SecretManager.Tools": "1.1.0-preview4-final",
  "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
    "version": "1.1.0-preview4-final",
    "imports": [
      "portable-net45+win8"
    ]
  }

1.1.0-preview4-final应该是我上次查看的正确版本。这同样适用于“依赖项”部分中的某些依赖项,如Microsoft.EntityFrameworkCore.Tools、Microsoft.VisualStudio.Web.CodeGeneration.Tools、Microsoft.AspNetCore.Razor.Tools和Microsoft.VisualStudio.Web.CodeGenerators.Mvc

我认为您已将ASP.NET核心从1.0更新为1.1,但是没有更改运行时您的运行时可能仍然是netcoreapp1.0,但对于ASP.NET Core,您需要netcoreapp1.1。@Tseng抱歉,我该怎么做?请参阅下面的答案,对于VS2015和基于csproj的新VS2017,您不能将Microsoft.NetCore.App添加到以.NET 4.6.1为目标的项目中。这是netcoreapp1.x的元包,它引用了.NETCore1.x包。您是否安装了.NET核心运行时。安装后,请尝试从依赖项部分删除需要.NET Core(通常是*.Tools)的包,因为它们应该可以通过SDK/运行时安装获得,但保留Tools部分。仅从依赖项中删除它们您的意思是:将net461更改为netcoreapp1.1?我已经用project.jsonNo文件更新了这个问题。现在我看到了您的project.json,这是一个不同的问题。看到了吗!我已经根据你的评论更新了工具。恢复已完成。但我又犯了一个错误。请检查我的更新2。
"tools": {
  "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final",
  "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
  "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
  "Microsoft.Extensions.SecretManager.Tools": "1.1.0-preview4-final",
  "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
    "version": "1.1.0-preview4-final",
    "imports": [
      "portable-net45+win8"
    ]
  }