【问题标题】:Updating to ASP NET 5 beta5 breaks everything更新到 ASP NET 5 beta5 会破坏一切
【发布时间】:2015-09-21 01:32:17
【问题描述】:

我在更新到 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

【问题讨论】:

  • 你能分享dnvm list命令输出吗?
  • 尝试卸载1.0.0-beta5-12103(只需删除文件夹)并运行dnvm use default并运行dnu restore。正如* 所说,您尝试的命令在beta4

标签: c# asp.net-core dnx dnvm


【解决方案1】:

我刚刚将 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"
    }
}

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

project.json 中引用beta5。这将使 dnu 恢复最新的构建 (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 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 project: library conflict upgrading from beta4 to beta6

【讨论】:

  • 使用“beta5-*”而不是“beta5”就可以了。谢谢
  • +1 希望我昨天看到了这篇文章!另请参阅:github.com/aspnet/Announcements/issues/27github.com/aspnet/Announcements/issues/33,这对我来说是个问题,但实际上只需看这里:github.com/aspnet/Announcements/issues
  • 1.0.0-beta5 出来了。那是 beta5 的最后一个版本。无需指定内部版本号或浮动版本。毫无意义。
  • 是的!你说对了!顺便说一句,您想要在实际测试版发布时删除 -* 的原因是因为我们在部署到 NuGet.org 时会做一些奇怪的事情,以便于安装官方版本。当我们发布到 nuget.org 时,我们会删除内部版本号。这意味着 1.0.0-beta5-{somebuild} > 1.0.0-beta5,这不是很好,但可以更轻松地找到正确的软件包版本。
  • 不,这并不重要。它会降低噪音,但在大多数情况下它是无害的。
【解决方案2】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
  • 1970-01-01
  • 2014-10-12
  • 2018-01-04
相关资源
最近更新 更多