C# 从ASP.NET 5 Beta 4升级到Beta 5时出错
我已经按照步骤从ASP.NET 5 Beta 4升级到Beta 5,但在运行时调用C# 从ASP.NET 5 Beta 4升级到Beta 5时出错,c#,asp.net,.net,asp.net-core,asp.net-core-mvc,C#,Asp.net,.net,Asp.net Core,Asp.net Core Mvc,我已经按照步骤从ASP.NET 5 Beta 4升级到Beta 5,但在运行时调用application.UseBrowserLink()时出错: 中发生“System.TypeLoadException”类型的异常 mscorlib.dll,但未在用户代码中处理 其他信息:无法加载类型 来自程序集的“Microsoft.AspNet.Builder.iaApplicationBuilder” 'Microsoft.AspNet.Http,版本=1.0.0.0,区域性=中性, PublicKey
application.UseBrowserLink()时出错代码>:
中发生“System.TypeLoadException”类型的异常
mscorlib.dll,但未在用户代码中处理
其他信息:无法加载类型
来自程序集的“Microsoft.AspNet.Builder.iaApplicationBuilder”
'Microsoft.AspNet.Http,版本=1.0.0.0,区域性=中性,
PublicKeyToken=null'
以下是我遵循的步骤:
已安装VS 2015 RC
从PowerShell运行:
$env:DNX\u提要=”https://www.nuget.org/api/v2“
从PowerShell运行:dnvm升级
添加了一个Global.json文件(我还没有)。当我添加它时,它已经提到了Beta 5:
{
"projects": [ "Source", "Tests" ],
"sdk": {
"version": "1.0.0-beta5-12103"
}
}
将project.json中的所有包更新为Beta 5。您可以看到myproject.lock.json文件的完整版本
然后,说明继续说您应该运行以下命令,但我相信VS 2015 RC会为您执行此操作dnu restore
然后dnu build
更新
这似乎是一个问题与浏览器链接,评论行出来允许网站工作。它可能坏了?需要围绕aspnet GitHub问题展开调查。问题在于:
您将DNX从beta4更新为beta5,并且希望在Visual Studio RC中运行MVC6模板(其模板是围绕beta4构建的)
首先,beta5中不再存在“Microsoft.Framework.Configuration.Json”
。(您肯定会看到:-中断从beta4到beta5的更改)
为了确保您的DNX得到了正确的更新,构建一个新的空web项目,只需添加MVC/WebAPI(检查其工作情况的简单案例)
我还没有试着运行MVC模板,但我会试着返回给您。在与ASP.NET vNext团队的@DavidFoll交谈后,他告诉我浏览器链接在beta5中不起作用,应该删除。为了帮助您从beta4迁移到beta5,我采取了以下步骤,基于研究/发现 环境
- PowerShell运行:
$env:DNX\u提要=”https://www.nuget.org/api/v2“
- PowerShell运行:
dnvm安装1.0.0-beta5
- PowerShell运行:
(不确定是否需要它,但我不得不这样做)dnvm使用1.0.0-beta5-p
- 打开global.json并将sdk更新为1.0.0-beta5,如下所示:
{ "projects": [ "src", "test" ], "sdk": { "version": "1.0.0-beta5" } }
- 打开project.json:
- 将依赖项版本从beta4更新为beta5
- 更改配置依赖项:
到"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4"
- 删除Microsoft.VisualStudio.Web.BrowserLink.Loader
- 将
重命名为\u GlobalImport.cshtml
\u ViewImports.cshtml
- 更改配置中断更改
- 使用Microsoft.Framework.ConfigurationModel从
更改命名空间使用Microsoft.Framework.Configuration将代码>转换为
代码>
- 将
更改为Configuration.GetSubKey
Configuration.GetConfigurationSection
- 更改为:
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv) { // Setup configuration sources. var configBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath) .AddJsonFile("config.json") .AddEnvironmentVariables(); Configuration = configBuilder.Build(); }
- 删除app.UseBrowserLink()代码>
- 使用Microsoft.Framework.ConfigurationModel从
- 在应用程序根目录中打开PowerShell
- 运行dnu还原
- 运行
dnu构建
- 此时关闭和重新打开VS有时会有所帮助
希望有帮助 要完成此操作,如果您想从beta 4升级到beta 6,请参阅Stephen Lautier的答案,并在下面给出答案: 从beta 5升级到beta 6: 我做到了:
- 打开global.json并将sdk更新为“1.0.0-beta6”并保存此文件
- Visual Studio 2015建议下载beta6,请单击“是”
- 将dnx451(或dnx452)更改为dnx46(使用框架4.6)
- 将此文件中的所有“-beta5”替换为“-beta6”
- 删除Microsoft.Framework.ConfigurationModel.UserSecrets
- 用app.UseSession()替换app.UseInMemorySession(…)
- 在ConfigureServices中,添加以下内容:
services.AddCaching(); services.AddSession(); services.ConfigureSession(o => { o.IdleTimeout = TimeSpan.FromSeconds(10); });
- 右键单击项目>属性>调试>添加新环境变量:
- 在Package Manager控制台中,编写此“dnu还原”和此“dnu构建”
- 重新启动Visual Studio
我的项目在beta6中工作之后,可能还有其他事情要做。如果有人想知道如何更新到ASP.NET 5 Beta 7,我发现下载Visual Studio 2015的最新ASP.NET和Web工具更新,然后在Visual Studio中创建一个新的ASP.NET 5项目非常有用 这将为您创建一个Beta 7项目,其中包含项目结构、代码和引用的依赖项。然后,您可以将此作为升级任何现有旧Beta项目的指南 例如,这里是my project.json使用所有Beta 7依赖项的外观:
{
"webroot": "wwwroot",
"userSecretsId": "aspnet5-WebApplication1-a433a0ef-3bed-4bc9-8086-8d18070fa2c1",
"version": "1.0.0-*",
"dependencies": {
"EntityFramework.Commands": "7.0.0-beta7",
"EntityFramework.SqlServer": "7.0.0-beta7",
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta7",
"Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta7",
"Microsoft.AspNet.Authentication.Google": "1.0.0-beta7",
"Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta7",
"Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta7",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta7",
"Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta7",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta7",
"Microsoft.AspNet.Mvc": "6.0.0-beta7",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta7",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta7",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta7",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-beta7",
"Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta7",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta7",
"Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta7",
"Microsoft.Framework.Logging": "1.0.0-beta7",
"Microsoft.Framework.Logging.Console": "1.0.0-beta7",
"Microsoft.Framework.Logging.Debug" : "1.0.0-beta7",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta7"
},
"commands": {
"web": "Microsoft.AspNet.Hosting --config hosting.ini",
"ef": "EntityFramework.Commands"
},
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
"exclude": [
"wwwroot",
"node_modules",
"bower_components"
],
"publishExclude": [
"node_modules",
"bower_components",
"**.xproj",
"**.user",
"**.vspscc"
],
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
}
}
在撰写本文时,您可以在这里下载。确保获得文件WebToolsExtensionsVS14.msi
查找有关此Beta 7版本的更多信息,请参阅博文我已尝试添加这两个版本,但仍然无效。同样的错误。稳定NuGet提要中的最新dnx运行时是
1.0.0-beta5
,但是您在global.json
中引用了夜间构建1.0.0-beta5-12103
。也许更改sdk版本1.0.0-beta5
会有所帮助
services.AddCaching();
services.AddSession();
services.ConfigureSession(o => { o.IdleTimeout = TimeSpan.FromSeconds(10); });
{
"webroot": "wwwroot",
"userSecretsId": "aspnet5-WebApplication1-a433a0ef-3bed-4bc9-8086-8d18070fa2c1",
"version": "1.0.0-*",
"dependencies": {
"EntityFramework.Commands": "7.0.0-beta7",
"EntityFramework.SqlServer": "7.0.0-beta7",
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta7",
"Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta7",
"Microsoft.AspNet.Authentication.Google": "1.0.0-beta7",
"Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta7",
"Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta7",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta7",
"Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta7",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta7",
"Microsoft.AspNet.Mvc": "6.0.0-beta7",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta7",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta7",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta7",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-beta7",
"Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta7",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta7",
"Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta7",
"Microsoft.Framework.Logging": "1.0.0-beta7",
"Microsoft.Framework.Logging.Console": "1.0.0-beta7",
"Microsoft.Framework.Logging.Debug" : "1.0.0-beta7",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta7"
},
"commands": {
"web": "Microsoft.AspNet.Hosting --config hosting.ini",
"ef": "EntityFramework.Commands"
},
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
"exclude": [
"wwwroot",
"node_modules",
"bower_components"
],
"publishExclude": [
"node_modules",
"bower_components",
"**.xproj",
"**.user",
"**.vspscc"
],
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
}
}