我已按照here步骤从ASP.NET 5 Beta 4升级到Beta 5,但在调用application.UseBrowserLink();
时在运行时收到错误:
类型' System.TypeLoadException'的例外情况发生在 mscorlib.dll但未在用户代码中处理
其他信息:无法加载类型 ' Microsoft.AspNet.Builder.IApplicationBuilder'从装配 ' Microsoft.AspNet.Http,Version = 1.0.0.0,Culture = neutral, 公钥=空'
这是我遵循的步骤:
$env:DNX_FEED="https://www.nuget.org/api/v2"
dnvm upgrade
添加了一个Global.json文件(我还没有)。当我添加它时,它已经提到了Beta 5:
{
"projects": [ "Source", "Tests" ],
"sdk": {
"version": "1.0.0-beta5-12103"
}
}
将project.json中的所有软件包更新为Beta 5.您可以看到我的project.lock.json文件的完整版本here。
{
"dependencies": {
"Boilerplate.Web.Mvc6": "1.0.2",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta5",
"Microsoft.AspNet.Mvc": "6.0.0-beta5",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta5",
"Microsoft.AspNet.Mvc.Xml": "6.0.0-beta5",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta5",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-beta5",
"Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta5",
"Microsoft.Framework.Configuration.EnvironmentVariables": "1.0.0-beta5",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta5",
"Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta5",
"Microsoft.Framework.Logging": "1.0.0-beta5",
"Microsoft.Framework.Logging.Console": "1.0.0-beta5",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta5",
"Newtonsoft.Json": "6.0.6",
"System.Runtime": "4.0.20-beta-23019"
}
"frameworks": {
"dnx451": {
"frameworkAssemblies": {
"System.Net.Http": "4.0.0.0",
"System.ServiceModel": "4.0.0.0"
}
},
"dnxcore50": {
"dependencies": {
"System.Net.Http": "4.0.0-beta-23019"
}
}
}
}
dnu restore
然后dnu build
执行此操作。更新
浏览器链接似乎存在问题,注释掉该行可以使网站正常工作。它可能会被打破?需要围绕aspnet GitHub问题进行搜索。
答案 0 :(得分:21)
为了帮助您从beta4迁移到beta5,根据研究/调查结果,我们采取了以下步骤。
$env:DNX_FEED="https://www.nuget.org/api/v2"
dnvm install 1.0.0-beta5
dnvm use 1.0.0-beta5 -p
(不确定是否需要,但我必须)打开global.json并将sdk更新为1.0.0-beta5应如下所示:
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-beta5"
}
}
打开project.json:
从
更改配置依赖关系"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4"
到
"Microsoft.Framework.Configuration": "1.0.0-beta5",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta5"
Microsoft.VisualStudio.Web.BrowserLink.Loader
_GlobalImport.cshtml
重命名为_ViewImports.cshtml
更改配置中断更改
将名称空间从using Microsoft.Framework.ConfigurationModel;
更改为using Microsoft.Framework.Configuration;
将Configuration.GetSubKey
更改为Configuration.GetConfigurationSection
将CTOR更改为:
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
// Setup configuration sources.
var configBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddEnvironmentVariables();
Configuration = configBuilder.Build();
}
app.UseBrowserLink();
dnu restore
dnu build
我自己发现升级现有项目非常困难,无法找到所有需要的步骤。 希望它有所帮助!
答案 1 :(得分:5)
要完成,如果你想从beta 4更新到beta 6,请参阅Stephen Lautier的回答并在此之后:
要从beta 5更新到beta 6:
我做了:
在project.json中:
在Startup.cs中,如果使用Session:
在ConfigureServices中,添加:
services.AddCaching();
services.AddSession();
services.ConfigureSession(o => { o.IdleTimeout = TimeSpan.FromSeconds(10); });
右键点击您的项目>属性>调试>添加新的环境变量:
名称: DNX_IIS_RUNTIME_FRAMEWORK
价值: dnx46
有关详细信息,请参阅:http://jameschambers.com/2015/07/launching-an-asp-net-5-application-from-visual-studio-2015/
之后,我的项目在beta6中工作,也许还有其他事情要做。
答案 2 :(得分:2)
与ASP.NET vNext团队的@davidfowl交谈后,他告诉我,浏览器链接在beta5中不起作用,应该删除。
答案 3 :(得分:1)
答案 4 :(得分:1)
这就是事情:
您已将DNX从beta4更新为beta5,并且您希望在Visual Studio RC中运行MVC6模板(其模板是围绕beta4构建的)。
首先,beta5中不再存在"Microsoft.Framework.Configuration.Json"
。 (你应该明白这一点:https://github.com/aspnet/announcements/issues?q=milestone%3A1.0.0-beta5 - 从beta4到beta5的变化。
为了确保您的DNX已正确更新,请构建一个新的空Web项目,然后添加MVC / WebAPI(简单案例以检查它是否有效)。
我还没有尝试过运行MVC模板,但我会尽力回复你。
答案 5 :(得分:1)
如果有人想知道如何更新到ASP.NET 5 Beta 7,我发现下载Visual Studio 2015的最新ASP.NET和Web Tools更新,然后在Visual中创建一个新的ASP.NET 5项目很有用。工作室。
这将为您创建一个包含项目结构,代码和引用依赖项的Beta 7项目。然后,您可以将其用作升级任何现有旧版Beta项目的指南。
例如,我的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" ]
}
}
在撰写本文时,您可以在此处下载the beta 7 updates for Visual Studio。确保您获得文件WebToolsExtensionsVS14.msi。
有关此Beta 7版本的详细信息,请参阅博文Announcing Availability of ASP.NET 5 Beta7