【问题标题】:ASP.NET vNext - MissingMethodException: Method not found: Microsoft.CodeAnalysis.Diagnostic> EmitResult.get_Diagnostics()'ASP.NET vNext - MissingMethodException:找不到方法:Microsoft.CodeAnalysis.Diagnostic> EmitResult.get_Diagnostics()'
【发布时间】:2015-07-10 02:06:31
【问题描述】:

我今天早上升级到 VS2015 RC,并使用 ASP.NET 5 模板 - 网站创建了一个新项目。我有一个我无法解决的错误:

处理请求时发生未处理的异常。

MissingMethodException:找不到方法: '系统 .Collections.Immutable.ImmutableArray`1 Microsoft.CodeAnalysis.Emit.EmitResult.get_Diagnostics()'。

Microsoft.AspNet.Mvc.Razor.RoslynCompilationService.Compile(RelativeFileInfo 文件信息,字符串编译内容)

这是完整的错误堆栈:

MissingMethodException:找不到方法: 'System.Collections.Immutable.ImmutableArray`1 Microsoft.CodeAnalysis.Emit.EmitResult.get_Diagnostics()'。

Microsoft.AspNet.Mvc.Razor.RoslynCompilationService.Compile(RelativeFileInfo 文件信息,字符串编译内容)

Microsoft.AspNet.Mvc.Razor.RazorCompilationService.Compile(RelativeFileInfo 文件)

Microsoft.AspNet.Mvc.Razor.CompilerCache.OnCacheMiss(RelativeFileInfo 文件,String normalizedPath,Func`2 编译)

Microsoft.AspNet.Mvc.Razor.CompilerCache.GetOrAddCore(String relativePath, Func`2 编译)

Microsoft.AspNet.Mvc.Razor.CompilerCache.GetOrAdd(String relativePath, Func`2编译)

Microsoft.AspNet.Mvc.Razor.VirtualPathRazorPageFactory.CreateInstance(字符串 相对路径)

Microsoft.AspNet.Mvc.Razor.RazorViewEngine.LocatePageFromViewLocations(ActionContext 上下文,字符串 pageName,布尔 isPartial)

Microsoft.AspNet.Mvc.Razor.RazorViewEngine.GetRazorPageResult(ActionContext 上下文,字符串 pageName,布尔 isPartial)

Microsoft.AspNet.Mvc.Razor.RazorViewEngine.FindView(ActionContext 上下文,字符串视图名称)

Microsoft.AspNet.Mvc.Rendering.CompositeViewEngine.FindView(ActionContext 上下文,字符串 viewName,布尔部分)

Microsoft.AspNet.Mvc.Rendering.CompositeViewEngine.FindView(ActionContext 上下文,字符串视图名称)

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()

--- 从先前抛出异常的位置结束堆栈跟踪---

System.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()

--- 从先前抛出异常的位置结束堆栈跟踪---

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()

Microsoft.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()

--- 从先前抛出异常的位置结束堆栈跟踪---

System.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.HandleNonSuccessAndDebuggerNotification(任务 任务)

System.Runtime.CompilerServices.TaskAwaiter.GetResult()

Microsoft.AspNet.Authentication.AuthenticationMiddleware`1.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.AuthenticationMiddleware`1.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.AuthenticationMiddleware`1.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.AuthenticationMiddleware`1.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()

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(任务 任务)

System.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,但得到了相同的结果。

有什么想法吗?

谢谢。

【问题讨论】:

  • 马特,我遇到了同样的错误。如果您尝试从 GitHub 页面上的说明以及 Visual Studio 2015 安装 aspcore 运行时工具,据我所知,这就是导致错误的原因。我尝试使用 dnvm 切换到不同版本的 beta 版本,结果相同。

标签: c# .net asp.net-core-mvc visual-studio-2015 dnvm


【解决方案1】:

我认为大卫是对的,我遇到了同样的问题,我能够通过以下方式解决它:

  • 打开 %USERPROFILE%\.dnx 目录
  • 从包目录中删除所有内容
  • 从运行时目录中删除 beta5 目录
  • 将别名目录中 defaults.txt 的值更改为指向 beta4 运行时之一

完成此操作后,我打开了项目备份,包成功恢复并且我能够运行应用程序。无论出于何种原因,无论出于何种原因,defaults.txt 都指向 beta5 运行时,假设这是在使用命令行工具时设置的。

希望这对你也有用!

【讨论】:

  • 感谢 David 和 user423293,我清理并摆脱了 beta5 运行时,现在一切正常!
猜你喜欢
  • 2010-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多