我今天早上升级到VS2015 RC,我使用ASP.NET 5模板 - 网站创建了一个新项目 . 我有一个错误,我无法解决:
处理请求时发生未处理的异常 . MissingMethodException:找不到方法:'System .Collections.Immutable.ImmutableArray`1 Microsoft.CodeAnalysis.Emit.EmitResult.get_Diagnostics()' . Microsoft.AspNet.Mvc.Razor.RoslynCompilationService.Compile(RelativeFileInfo fileInfo,String compilationContent)
这是完整的错误堆栈:
MissingMethodException:找不到方法:'System.Collections.Immutable.ImmutableArray
1 Microsoft.CodeAnalysis.Emit.EmitResult.get_Diagnostics()' . Microsoft.AspNet.Mvc.Razor.RoslynCompilationService.Compile(RelativeFileInfo fileInfo,String compilationContent)Microsoft.AspNet.Mvc.Razor.RazorCompilationService.Compile(RelativeFileInfo file)Microsoft.AspNet.Mvc.Razor.CompilerCache.OnCacheMiss(RelativeFileInfo file,String normalizedPath ,Func
2 compile)Microsoft.AspNet.Mvc.Razor.CompilerCache.GetOrAddCore(String relativePath,Func2 compile)Microsoft.AspNet.Mvc.Razor.CompilerCache.GetOrAdd(String relativePath,Func
2 compile)Microsoft.AspNet . Mvc.Razor.VirtualPathRazorPageFactory.CreateInstance(String relativePath)Microsoft.AspNet.Mvc.Razor.RazorViewEngine.LocatePageFromViewLocations(ActionContext context,String pageName,Boolean isPartial)Microsoft.AspNet.Mvc.Razor.RazorViewEngine.GetRazorPageResult(ActionContext context,String pageName, Boolean isPartial)Microsoft.AspNet.Mvc.Razor.RazorViewEngine.FindView(ActionContext context,String viewName)Microsoft.AspNet.Mvc.Rendering.CompositeViewEngine.FindView(ActionContext con text,String viewName,Boolean partial)Microsoft.AspNet.Mvc.Rendering.CompositeViewEngine.FindView(ActionContext context,String viewName)Microsoft.AspNet.Mvc.ViewResult.d__20.MoveNext()---来自上一个位置的堆栈跟踪结束抛出异常--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet.Mvc.Core .FilterActionInvoker.d__44.MoveNext()---抛出异常的前一个位置的堆栈跟踪结束--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) )System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet.Mvc.Core.FilterActionInvoker.d__43.MoveNext()---从抛出异常的先前位置开始的堆栈跟踪结束--- Syst em.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()Microsoft.AspNet.Mvc.Core.FilterActionInvoker.d__42.MoveNext()---从抛出异常的先前位置开始的堆栈跟踪结束--- System.Runtime.CompilerServices.TaskAwaiter .ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet.Mvc.Core.FilterActionInvoker.d__37.MoveNext()--- End of抛出异常的前一个位置的堆栈跟踪--- System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()Microsoft.AspNet.Mvc.Core.FilterActionInvoker.d__32.MoveNext()---来自先前位置的堆栈跟踪结束被抛出--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsof t.AspNet.Mvc.MvcRouteHandler.d__3.MoveNext()---抛出异常的前一个位置的堆栈跟踪结束--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter .HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet.Mvc.MvcRouteHandler.d__2.MoveNext()---从抛出异常的先前位置开始的堆栈跟踪结束--- System.Runtime .CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet.Routing.Template.TemplateRoute.d__25.MoveNext()---从抛出异常的先前位置开始的堆栈跟踪结束--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices .TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet.Routing.RouteCollection.d__10.MoveNext()---从抛出异常的上一个位置开始的堆栈跟踪---系统.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet.Builder.RouterMiddleware.d__4.MoveNext() - - 抛出异常的先前位置的堆栈跟踪结束--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndD ebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet.Authentication.AuthenticationMiddleware1.d__10.MoveNext()---从抛出异常的先前位置开始的堆栈跟踪---系统 . Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()Microsoft.AspNet.Authentication.AuthenticationMiddleware
1.d__10.MoveNext()---从抛出异常的先前位置开始的堆栈跟踪结束--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet.Authentication.AuthenticationMiddleware1.d__10.MoveNext()---堆栈跟踪结束从抛出异常的先前位置--- System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()Microsoft.AspNet.Authentication.AuthenticationMiddleware
1.d__10.MoveNext()---堆栈跟踪结束抛出异常的先前位置--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet . Authentication.AuthenticationMiddleware1.d__10.MoveNext()---从抛出异常的先前位置开始的堆栈跟踪结束--- System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()Microsoft.AspNet.Authentication.AuthenticationMiddleware
1.d__10 .MoveNext()---抛出异常的前一个位置的堆栈跟踪结束--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime .CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet.Authentication.AuthenticationMiddleware1.d__10.MoveNext()---从上一个位置开始的堆栈跟踪结束抛出了eption --- System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()Microsoft.AspNet.Authentication.AuthenticationMiddleware
1.d__10.MoveNext()---抛出异常的前一个位置的堆栈跟踪结束---系统.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()System.Threading.Tasks.EntityFrameworkTaskExtensions.CultureAwaiter.GetResult()Microsoft .AspNet.Diagnostics.Entity.DatabaseErrorPageMiddleware.d__6.MoveNext()---抛出异常的上一个位置的堆栈跟踪结束--- System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()Microsoft.AspNet.Diagnostics.Entity . DatabaseErrorPageMiddleware.d__6.MoveNext()---从抛出异常的先前位置开始的堆栈跟踪结束--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)系统.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)System.Runtime.CompilerServices.TaskAwaiter.GetResult()Microsoft.AspNet.Diagnostics.ErrorPageMiddleware.d__4.MoveNext()
我的project.json文件与模板中提供的文件相同:
{
"webroot": "wwwroot",
"userSecretsId": "aspnet5-WebApplication2-2819f43f-7688-4637-89a0-d22341b36a64",
"version": "1.0.0-*",
"dependencies": {
"EntityFramework.SqlServer": "7.0.0-beta4",
"EntityFramework.Commands": "7.0.0-beta4",
"Microsoft.AspNet.Mvc": "6.0.0-beta4",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta4",
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta4",
"Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta4",
"Microsoft.AspNet.Authentication.Google": "1.0.0-beta4",
"Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta4",
"Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta4",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta4",
"Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta4",
"Microsoft.AspNet.Identity.EntityFramework": "3.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",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-beta4",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"Microsoft.Framework.ConfigurationModel.UserSecrets": "1.0.0-beta4",
"Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta4",
"Microsoft.Framework.Logging": "1.0.0-beta4",
"Microsoft.Framework.Logging.Console": "1.0.0-beta4",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta4"
},
"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000",
"gen": "Microsoft.Framework.CodeGeneration",
"ef": "EntityFramework.Commands"
},
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
"exclude": [
"wwwroot",
"node_modules",
"bower_components"
],
"publishExclude": [
"node_modules",
"bower_components",
"**.xproj",
"**.user",
"**.vspscc"
],
"scripts": {
"postrestore": [ "npm install", "bower install" ],
"prepare": [ "gulp copy" ]
}
}
当我运行dnvm list命令时:
> dnvm list
Active Version Runtime Architecture Location Alias
------ ------- ------- ------------ -------- -----
1.0.0-beta4 clr x64 <mypath>\.dnx\packages
1.0.0-beta4 clr x86 <mypath>\.dnx\packages
1.0.0-beta4 coreclr x64 <mypath>\.dnx\packages
1.0.0-beta4 coreclr x86 <mypath>\.dnx\packages
1.0.0-beta5-11596 clr x86 <mypath>\.dnx\packages
* 1.0.0-beta5-11624 clr x86 <mypath>\.dnx\packages default
我也尝试使用1.0.0-beta5-11596和1.0.0-beta4 clr,但我得到了相同的结果 .
任何的想法?
谢谢 .
1 回答
我认为大卫是对的,我也一样问题,我能够解决它:
打开%USERPROFILE%\ . dnx目录
从packages目录中删除所有内容
从运行时目录中删除beta5目录
更改别名目录中defaults.txt的值以指向beta4运行时之一
一旦我这样做,我重新打开了项目,包成功恢复,我能够运行应用程序 . 无论出于何种原因,无论出于何种原因,defaults.txt都指向beta5运行时,假设这是在使用命令行工具时设置的 .
希望对你有用!