我从https://github.com/aspnet/Mvc下载了MVC的源代码,在ASP.NET 5 Starter Web项目中,我在解决方案级别添加了global/global.json
。
在global.json
中,我指出了MVC源的位置:
{
"sources": [ "C:\\development\\github\\Mvc\\src" ]
}
当我构建并运行项目时,我得到了:
有谁可以指出我可能做错了什么?我希望能够运行ASP.NET项目并调试MVC。
答案 0 :(得分:4)
在这里盲目拍摄,但这是使用信号源时最常见的问题:确保您使用的是相同Feed /分支中的软件包和来源。
当您从ASPNET的GitHub repos克隆源时,对于大多数repos,默认分支是dev
。该分支中的代码对应于来自MyGet(https://www.myget.org/F/aspnetvnext/api/v2)而不是NuGet的包。
但是,如果你使用NuGet中的包和dev
分支中的代码(反之亦然),你肯定会遇到像你看到的奇怪的错误(缺少方法,不正确的参数等)。
答案 1 :(得分:1)
最后编辑遇到类似问题我找到了这个来源:
http://davidfowl.com/diagnosing-dependency-issues-with-asp-net-5/
最重要的部分是软件包的版本与dnx 的版本不同。但是,软件包无法指定它们所需的最小dnx版本,因此存在问题。 ASP.NET团队表示他们将标记程序包所需的最低版本的dnx,因此这个错误将消失,但是在此之前我们必须忍受它。
这是一篇引文,与文章中的你/我的问题有关(没有我之前想象的动态):
如果您看到方法缺少类型缺失异常或可能是程序集加载失败,您可能最终运行betaX软件包和betaY dnx,反之亦然。
我的解决方案(已检查并且有效!)
如果我使用特定的运行时版本等于软件包的版本,或者我只是将特定运行时版本取消选中,那么一切都很好,
此外,如果使用星号指定包版本,例如1.0.0- *而不是1.0.0-beta6,则存在大量编译/智能感知错误。
所以,底线是:所有版本必须完全匹配,至少目前是这样。
答案 2 :(得分:0)
正如上面的答案所解释的那样,这是你应该在项目中看到的路径:
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta2",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta2",
"Microsoft.AspNet.Mvc": "6.0.0-beta2",
"Microsoft.AspNet.Routing": "1.0.0-beta2",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta2",
"EntityFramework": "6.1.2"
}