更新到 ASP NET 5 beta5 会破坏一切

Updating to ASP NET 5 beta5 breaks everything

我在更新到 beta5 时遵循了本指南,并且更新过程似乎有效。

http://blogs.msdn.com/b/webdev/archive/2015/06/30/asp-net-5-beta5-now-available.aspx

To update to ASP.NET 5 Beta5 use the following steps:

  • Install the .NET Version Manager (DNVM) if you don’t already have it (it comes preinstalled with Visual Studio 2015 RC, or you can get the latest version)
  • From a command prompt set the DNX_FEED environment variable to https://www.nuget.org/api/v2
  • Run “dnvm upgrade” In your app update your global.json to point to beta5 version of the .NET Execution Environment (DNX)
  • Also your project.json to point to the beta5 package versions
  • Run “dnu restore” Run “dnu build” and migrate your code to beta5 s needed

但是,我收到构建错误,提示我缺少程序集。它抱怨 System.Void 并且缺少这样的东西。它也无法从 Microsoft.AspNet.MVC 中找到控制器:/

如果我恢复到 beta4,它又可以工作了。

我错过了哪一步?

DNVM 列表(恢复到 beta4)

Active Version           Runtime Architecture Location                      Ali
                                                                            as
------ -------           ------- ------------ --------                      ---
       1.0.0-beta4       clr     x64          C:\Users\MySelf\.dnx\runtimes
  *    1.0.0-beta4       clr     x86          C:\Users\MySelf\.dnx\runtimes
       1.0.0-beta4       coreclr x64          C:\Users\MySelf\.dnx\runtimes
       1.0.0-beta4       coreclr x86          C:\Users\MySelf\.dnx\runtimes
       1.0.0-beta5       clr     x86          C:\Users\Myself\.dnx\runtimes def
       1.0.0-beta5-12103 clr     x86          C:\Users\MySelf\.dnx\runtimes

我刚刚将 Visual Studio 2015 ASP.MVC Web 应用程序从 beta4 升级到 beta5,现在 运行。以下是对您遵循的说明的一些补充。

运行 “dnvm 升级”

完成后,dnvm list 将输出以下内容。

Active Version           Runtime Architecture Location                       Alias
------ -------           ------- ------------ --------                       -----
       1.0.0-beta4       clr     x64          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta4       clr     x86          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta4       coreclr x64          C:\Users\BigFont\.dnx\runtimes
       1.0.0-beta4       coreclr x86          C:\Users\BigFont\.dnx\runtimes
  *    1.0.0-beta5       clr     x86          C:\Users\BigFont\.dnx\runtimes default
       1.0.0-beta5-12087 clr     x86          C:\Users\BigFont\.dnx\runtimes

在您的应用中更新您的 global.json 以指向 beta5

global.json 中指向 specific beta5 版本:

{
    "projects": [ "src", "test" ],
    "sdk": {
        "version": "1.0.0-beta5"
    }
}

还有你的 project.json 指向 beta5 包版本

project.json reference beta5. That will make dnu restore the most recent build (well, kinda - David Fowl describes the nuances of the "floating version" here.)

"dependencies": {
  "Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
  "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
  "Microsoft.AspNet.StaticFiles": "1.0.0-beta5"
},

...根据需要将您的代码迁移到 beta5

一旦您不再收到有关缺少基础对象的错误,例如 System.Void,您可能会收到有关中断更改的错误。这可能需要一些研究才能解决,具体取决于您的代码库使用的内容。例如,如果您使用的是 ASP.NET 身份,则需要更改为:

SignInManager.PasswordSignInAsync(
    model.Email, model.Password, model.RememberMe, shouldLockout: false);

对此:

SignInManager.PasswordSignInAsync(
    model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);

最后的注释:Visual Studio

关闭并重新打开 Visual Studio 中的解决方案可以在更新 global.jsonpackage.json 文件后解决 restore/build 问题。

另请参阅:

@Shaun Luttin 已经介绍过了,但我会提到两件事:

  • 浏览器 Link 在 Beta 5 中实际上不起作用。它会导致一个非常奇怪的错误。您需要注释掉 app.UseBrowserlink() 才能正常工作。后续版本已修复此问题。
  • 我还发现名称中带有'ConfigurationModel'的包被重命名为'Configuration'。