我正在使用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"
]
}
答案 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中编辑它:
强烈推荐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为目标。