2015-10-16 43 views
3

使用VS 2015 MVC的测试版8,我收到以下错误ASP.Net5 Startup.cs ConfigurationBuilder

"Severity Code Description Project File Line 
Error CS1503 Argument 1: cannot convert from 'string' to 'Microsoft.Framework.Configuration.IConfigurationProvider' NewInventory.DNX Core 5.0 F:\Projects\NewInventory\src\NewInventory\Startup.cs 35 

从我startup.cs的这一部分:

public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv) 
     { 
      // Setup configuration sources. 

      var builder = new ConfigurationBuilder(appEnv.ApplicationBasePath) 
       .AddJsonFile("config.json") 
       .AddJsonFile($"config.{env.EnvironmentName}.json", optional: true); 

      if (env.IsDevelopment()) 
      { 
       // This reads the configuration keys from the secret store. 
       // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709 
       builder.AddUserSecrets(); 
      } 
      builder.AddEnvironmentVariables(); 
      Configuration = builder.Build(); 
     } 

当我徘徊通过ConfigurationBuilder我可以看到其寻找'ConfigurationBuilder.ConfigurationBuilder(params IConfigurationProvider[] providers)'

如何将appEnv.ApplicationBasePath更改为IConfigurationProvider数组?

我project.json是:

{ 
    "webroot": "wwwroot", 
    "userSecretsId": "aspnet5-NewInventory-f5a8bab7-e95b-485b-97e9-9a072438b107", 
    "version": "1.0.0-*", 

    "dependencies": { 
    "EntityFramework.SqlServer":"7.0.0-beta5", 
    "EntityFramework.Commands": "7.0.0-beta5", 
    "Microsoft.AspNet.Mvc": "6.0.0-beta8", 
    "Microsoft.AspNet.Mvc.TagHelpers": "6.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-beta8", 
    "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.Configuration": "1.0.0-beta8", 
    "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta8", 
    "Microsoft.Framework.Configuration.Binder": "1.0.0-beta8", 
    "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" 
    }, 

    "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" ] 
    }, 
    "configurations": { 
    } 
} 
+2

我知道这个问题会来,这就是为什么我Q&A'D它。除此之外:你们正在混合使用beta5和beta8软件包,你不应该那样做。将所有内容更新到beta8。 –

+0

@Henk Mollema谢谢Henk。请参阅我的评论以下关于我尝试将所有更新到beta8 – HendPro12

+0

一些包被重命名。请参阅[公告回购](https://github.com/aspnet/Announcements/issues)了解更多信息。 –

回答

8

有具有appEnv.ApplicationBasePath作为参数ConfigurationBuilder没有更多的构造函数,而是有SetBasePath方法。

所以你的代码更改为:

var builder = new ConfigurationBuilder() 
       .SetBasePath(appEnv.ApplicationBasePath) 
       .AddJsonFile("config.json") 
       .AddJsonFile($"config.{env.EnvironmentName}.json", optional: true); 
+0

谢谢安迪。它告诉我ConfigurationBuilder不包含SetBasePath – HendPro12

+0

@ HendPro12的定义根据你的'project.json':你正在混合beta5和beta8包。这似乎不是一个好主意,试着将所有内容都改为beta8。 –

+0

也许我在做一些错误的事情..仍然学习这个新的project.json方法而不是旧的Nuget方式。不过,我昨天浏览了该文件,并使用智能感知识别最新版本。没有测试版8的人似乎没有。 – HendPro12