2015-07-04 67 views
2

我將VS2015RC MVC 6 web項目(DNVM)從beta5升級到beta6,並將所有依賴升級到beta5。經過很多微小的調整,我認爲,我只有一個問題。在啓動配置更改後,我發現啓動方法的簽名已更改,並且包含無法解析的界面。MVC 6 VS VS 2015RC升級

錯誤CS0433「Microsoft.Framework.Runtime.Abstractions,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null」和「Microsoft.Framework.Runtime.Interfaces,Version = 1.0」中都存在IApplicationEnvironment類型.0.0,Culture = neutral,PublicKeyToken = null'Web.DNX 4.5.1 D:\ Repositories \ Web \ Startup.cs 35

我試着用nuget添加beta4抽象和接口,但都沒有工作。

我錯過了什麼樣的組件來升級或添加到項目中?

public Startup(IHostingEnvironment env, **IApplicationEnvironment** appEnv) 
     { 
      var configuration = new ConfigurationBuilder(appEnv.ApplicationBasePath) 
       .AddJsonFile("config.json") 
       .AddEnvironmentVariables(); 

謝謝!

回答

2

追查它。

只需在project.json中使用「Microsoft.Framework.Runtime.Abstractions」:「1.0.0-beta5」,並刪除接口依賴關係(如果存在)。

我project.json

"dependencies": { 
    "EntityFramework.Commands": "7.0.0-beta5", 
    "EntityFramework.SqlServer": "7.0.0-beta5", 
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta5", 
    "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta5", 
    "Microsoft.AspNet.Authentication.Google": "1.0.0-beta5", 
    "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta5", 
    "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta5", 
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta5", 
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta5", 
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta5", 
    "Microsoft.AspNet.Mvc": "6.0.0-beta5", 
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta5", 
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta5", 
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5", 
    "Microsoft.AspNet.SignalR.Server": "3.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.CommandLineUtils": "1.0.0-beta4", 
    "Microsoft.Framework.Configuration": "1.0.0-beta5", 
    "Microsoft.Framework.Configuration.CommandLine": "1.0.0-beta5", 
    "Microsoft.Framework.Configuration.EnvironmentVariables": "1.0.0-beta5", 
    "Microsoft.Framework.Configuration.Ini": "1.0.0-beta5", 
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta5", 
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta5", 
    "Microsoft.Framework.DependencyInjection": "1.0.0-beta5", 
    "Microsoft.Framework.Logging": "1.0.0-beta5", 
    "Microsoft.Framework.Logging.Console": "1.0.0-beta5", 
    "Microsoft.Framework.Runtime.Abstractions": "1.0.0-beta5", 

    }, 
+0

當您遇到類似的問題時,您能詳細闡述一下,您的答案並沒有多大幫助。這從哪裏刪除? project.json或project.lock.json? – Marqueone

+0

添加到project.json並確保已刪除Microsoft.Framework.Runtime.Interface。 – William

+0

我已經檢查了我的project.json,我從來沒有一個Microsoft.Framework.Runtime.Interface,但我添加了「Microsoft.Framework.Runtime.Abstractions」:「1.0.0-beta5」,我仍然可以''使你的修復工作:\ – Marqueone

1

我剛剛得到這個工作我自己,上面的回答是缺少一個關於一些細微的變化也需要Startup.cs一部分,希望這可以幫助其他人BETA4升級到beta5的:

在project.json依賴補充一點:

"dependencies": { 
    ... 
    "Microsoft.Framework.Runtime.Abstractions": "1.0.0-beta5", 
    ... 
    }, 

在你Startup.cs請確保您有以下使用:

using Microsoft.Framework.Runtime; 

啓動方法看起來像這樣(包括.Build()在最後,現在也需要。

public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv) 
{    
    Configuration = new ConfigurationBuilder(appEnv.ApplicationBasePath) 
     .AddJsonFile("config.json") 
     .AddEnvironmentVariables() 
     .Build(); 
}