无法解决目标框架'DNX,Version = v4.5.1'

时间:2015-05-02 10:15:32

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

我正在使用ASP.NET 5.0,我想在新的Core CLR上运行,因此我从"dnx451": { }文件中的依赖项中删除了project.json。我在IIS中启动时出现以下错误:

  

无法解决目标框架'DNX,Version = v4.5.1'的以下依赖关系:   Microsoft.AspNet.Mvc 6.0.0-beta4   Microsoft.AspNet.Server.IIS 1.0.0-beta4      Microsoft.AspNet.Server.WebListener 1.0.0-beta4      Microsoft.AspNet.StaticFiles 1.0.0-beta4

我的理解是AspNet.Mvc 6可以在Core CLR上运行吗?为什么我必须将dnx451作为依赖项?

我的project.json文件:

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.AspNet.Mvc": "6.0.0-beta4",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta4"
  },

  "commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
  },

  "frameworks": {
    "dnxcore50": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ]
}

2 个答案:

答案 0 :(得分:2)

dnxcore50中指定project.json作为依赖项与告知解决方案定位dnx不同。要解决此问题,我必须修改解决方案global.json文件以使用特定版本的dnx(即特定的.Net可执行文件)。我还必须更改一些using语句以使用新的Core CLR库而不是.Net 4.5库。您将获得有关这些的智能感知和错误警告。

可以在“解决方案”节点下找到global.json文件。我不得不添加sdk版本部分:

{
    "projects": [ "src", "test" ],
    "sdk": {
        "version": "1.0.0-beta4"
    }
}

请注意,您也可以在GUI中编辑它:

enter image description here

强烈推荐Channel 9上提供的Build 2015中最近上传的ASP.NET简介和ASP.NET Deep Dive视频。

答案 1 :(得分:1)

发布我的DNX网络应用时出现此错误。事实证明,这是因为我已从Beta5升级到Beta6但忽略了更新我的发布PowerShell脚本,如下所示:

$thisFolder = (Get-Item -Path ".\" -Verbose).FullName
$webFolder = "$thisFolder\..\src\Web.UI"
dnu publish $webFolder `
 --out \\uatserver\uatshare ` 
 --configuration DEBUG ` 
 --no-source `
 --runtime dnx-clr-win-x64.1.0.0-beta5

所以在最后一个参数中,我的发布仍然告诉它以beta5而不是beta6为目标。