【问题标题】:MVC package not compatibleMVC 包不兼容
【发布时间】:2016-11-24 04:38:14
【问题描述】:

我正在尝试将我的项目更新到 dotnet core 1.1。我安装了给定的 dotnet core SDK(确切地说是 1.0.0-preview2-1-003177)并创建了一个新的 Core WebAPI 项目,并根据升级文档中的给定更新了包。

error: Package Microsoft.AspNetCore.Mvc 1.1.0 is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). 
Package Microsoft.AspNetCore.Mvc 1.1.0 supports: 
error: - net451 (.NETFramework,Version=v4.5.1) 
error: - netstandard1.6 (.NETStandard,Version=v1.6) 
error: One or more packages are incompatible with .NETCoreApp,Version=v1.1.

这是我的 package.json

{

  "dependencies": {
    "Microsoft.AspNetCore.Authentication": "1.1.0",
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Logging": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0",
    "Microsoft.Extensions.Logging.Debug": "1.1.0",
    "Microsoft.NETCore.App": "1.1.0"
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    }
  },

  "frameworks": {
    "netcoreapp1.1": {
      "imports": [
        "dotnet5.6",
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "gcServer": true
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

谁能帮我解决这个问题?

【问题讨论】:

  • 知道了,global.json 中引用了旧的 sdk 版本。这就是问题所在。修复它:-) 添加解决方案

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


【解决方案1】:

已经在问题本身添加了一个答案,将其作为我自己对这个问题的答案。

  1. 转到命令提示符并点击此命令dotnet --version
  2. 复制 sdk 版本
  3. 转到解决方案的 global.json 并将版本替换为复制的版本号。 global.json 应该如下所示。

global.json

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-preview2-1-003177"
  }
}

另一种方法是完全删除版本。 (感谢@Tseng 的建议)

清理、重建和恢复软件包。应该可以。

【讨论】:

  • 您可以/应该完全删除version 属性,然后它将始终使用最新的
  • 该属性是默认添加的。不知道删除它是否有效。谢谢队友:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
  • 2021-05-14
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
相关资源
最近更新 更多