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

标签 c# asp.net-core dnx dnvm

我在更新到 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 中找到 Controller :/

如果我恢复到 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指向 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 的最后说明

在更新 global.jsonpackage.json 文件后,在 Visual Studio 中关闭并重新打开解决方案可以解决还原/构建问题。

另请参阅:ASP.NET 5 (vNext) web project: library conflict upgrading from beta4 to beta6

关于c# - 更新到 ASP NET 5 beta5 会破坏一切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31202888/

相关文章:

asp.net - Mac OS X Docker基准ASP.NET错误:找不到libdl

c# - 无法在 ASP.NET 5 dnx 中构建控制台应用程序

c# - 如何在 ASP.NET MVC 3 中的 HTTPContext 响应中添加 header ?

c# - 如何绕过或实现 IComparable

c# - 如何在 ASP.NET Core Identity 中检索用户的 2FA 恢复代码?

c# - dotnet 核心中的 RealProxy?

asp.net-mvc - 如何在不使用 Powershell 的情况下在 Windows 10 物联网核心中托管 Asp.Net 5 Web api

c# - MSChart 没有填满整个图表区域

c# - 数据绑定(bind) DockPanel

asp.net-core - ASP.Net Core 不同的 web.config 按环境