ASP.NET vNext - MissingMethodException: метод не найден: Microsoft.CodeAnalysis.Diagnostic> EmitResult.get_Diagnostics()'

Я обновил сегодня утром до 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)

Microsoft.AspNet.Mvc.Razor.CompilerCache.OnCacheMiss (файл RelativeFileInfo, строка normalizedPath, Func`2 компилируется)

Microsoft.AspNet.Mvc.Razor.CompilerCache.GetOrAddCore (StringlativePath, Func`2 compile)

Microsoft.AspNet.Mvc.Razor.CompilerCache.GetOrAdd (StringlativePath, Func`2 compile)

Microsoft.AspNet.Mvc.Razor.VirtualPathRazorPageFactory.CreateInstance (StringlativePath)

Microsoft.AspNet.Mvc.Razor.RazorViewEngine.LocatePageFromViewLocations (контекст ActionContext, строковое имя страницы, логическое значение isPartial)

Microsoft.AspNet.Mvc.Razor.RazorViewEngine.GetRazorPageResult (контекст ActionContext, строковое имя страницы, логическое значение isPartial)

Microsoft.AspNet.Mvc.Razor.RazorViewEngine.FindView (контекст ActionContext, String viewName)

Microsoft.AspNet.Mvc.Rendering.CompositeViewEngine.FindView (контекст ActionContext, String viewName, логическое частичное)

Microsoft.AspNet.Mvc.Rendering.CompositeViewEngine.FindView (контекст ActionContext, 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 ()

--- Конец стека трассировки от предыдущего места, где было сгенерировано исключение ---

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-бета5-11596 и 1.0.0-бета4 clr, но получаю тот же результат.

Любая идея?

Благодарю.

1 ответ

Решение

Я думаю, что Дэвид прав, у меня была та же проблема, и я смог решить ее:

  • Открытие каталога%USERPROFILE%\. Dnx
  • Удаление всего из каталога пакетов
  • Удаление каталогов beta5 из каталога runtime
  • Изменение значения defaults.txt в псевдониме dir для указания на одну из сред выполнения бета4

Как только я это сделал, я снова открыл проект, пакеты были успешно восстановлены, и я смог запустить приложение. По какой-то причине файл defaults.txt указывался на время выполнения бета-версии по любой причине, предполагая, что это было установлено когда-то при игре с инструментами командной строки.

Надеюсь, что это работает для вас тоже!

Другие вопросы по тегам