更新到 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.json
和 package.json
文件后解决 restore/build 问题。
另请参阅:
@Shaun Luttin 已经介绍过了,但我会提到两件事:
- 浏览器 Link 在 Beta 5 中实际上不起作用。它会导致一个非常奇怪的错误。您需要注释掉
app.UseBrowserlink()
才能正常工作。后续版本已修复此问题。
- 我还发现名称中带有'ConfigurationModel'的包被重命名为'Configuration'。
我在更新到 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.json
和 package.json
文件后解决 restore/build 问题。
另请参阅:
@Shaun Luttin 已经介绍过了,但我会提到两件事:
- 浏览器 Link 在 Beta 5 中实际上不起作用。它会导致一个非常奇怪的错误。您需要注释掉
app.UseBrowserlink()
才能正常工作。后续版本已修复此问题。 - 我还发现名称中带有'ConfigurationModel'的包被重命名为'Configuration'。