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

本文关键字:beta5 ASP NET 更新 | 更新日期: 2023-09-27 18:00:58

我在更新到 beta5 时遵循了本指南,更新过程似乎已经奏效。

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

要更新到 ASP.NET 5 Beta5,请使用以下步骤:

  • 如果您还没有.NET Version Manager(DNVM(,请安装它(它预装在Visual Studio 2015 RC中,或者你可以 获取最新版本(
  • 在命令提示符下,将DNX_FEED环境变量设置为 https://www.nuget.org/api/v2
  • 在应用中运行"dnvm 升级",更新 global.json 以指向 .NET 执行环境 (DNX( 的 beta5 版本
  • 还有你的项目.json指向beta5包版本
  • 运行"dnu 恢复" 运行"dnu build"并将您的代码迁移到所需的 beta5 s
但是,我

收到生成错误,说我缺少程序集。它抱怨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

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

我刚刚升级了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指向beta5的特定版本

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

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

project.json参考beta5.这将使 dnu 恢复最新的构建(嗯,有点 - David Fowl 在这里描述了"浮动版本"的细微差别。

"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文件后的还原/生成问题。

另请参阅:ASP.NET 5 (vNext( Web 项目:库冲突从 beta4 升级到 beta6

@Shaun Luttin 已经涵盖了它,但我会提到两件事:

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