5

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

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

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

  • 如果您还没有 .NET 版本管理器 (DNVM),请安装它(它预装在 Visual Studio 2015 RC 中,或者您可以获得最新版本)
  • 从命令提示符将 DNX_FEED 环境变量设置为https://www.nuget.org/api/v2
  • 运行“dnvm upgrade” 在您的应用程序中更新您的 global.json 以指向 .NET 执行环境 (DNX) 的 beta5 版本
  • 还有你的 project.json 指向 beta5 包版本
  • 运行“dnu restore”运行“dnu build”并将您的代码迁移到需要的beta5

但是,我收到构建错误,说我缺少程序集。它抱怨 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
4

2 回答 2

8

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

运行“dnvm升级”</h1>

完成后,这就是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"
    }
}

还有你的 project.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 Identity,则需要更改:

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

于 2015-07-03T14:05:41.140 回答
1

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

  • Browser Link 在 Beta 5 中实际上不起作用。它会导致一个非常奇怪的错误。您需要注释掉app.UseBrowserlink()以使事情正常进行。更高版本已修复此问题。
  • 我还发现名称中带有“ConfigurationModel”的包被重命名为“Configuration”。
于 2015-07-07T16:11:41.850 回答