Asp.net core ASP.Net Core RC2找不到config.json

Asp.net core ASP.Net Core RC2找不到config.json,asp.net-core,Asp.net Core,我正在将我的ASP.Net核心项目从RC1更新到最近发布的RC2。我面临的一个问题是将config.json文件加载到Startup.cs中的配置对象中 我的项目无法启动,并且在找不到config.json时抛出System.IO.FileNotFound异常 这是RC1的工作代码 公共启动(IHostingEnvironment env,IApplicationEnvironment appEnv) { 配置=新的ConfigurationBuilder() .AddJsonFile(“Set

我正在将我的ASP.Net核心项目从RC1更新到最近发布的RC2。我面临的一个问题是将
config.json
文件加载到
Startup.cs
中的配置对象中

我的项目无法启动,并且在找不到
config.json
时抛出
System.IO.FileNotFound
异常

这是RC1的工作代码

公共启动(IHostingEnvironment env,IApplicationEnvironment appEnv)
{
配置=新的ConfigurationBuilder()
.AddJsonFile(“Settings/config.json”)
.AddenEnvironmentVariables()
.Build();
}
这是RC2中几乎相同的代码,它不起作用。请注意,我已经将
config.json
文件上移了一个级别,以防是文件夹层次结构导致了故障

公共启动(IHostingEnvironment环境)
{
配置=新的ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile(“config.json”)
.AddenEnvironmentVariables()
.Build();
}
(注意:我试过使用和不使用
SetBasePath
调用。)

一个选项是用这两行替换
.AddJsonFile(“config.json”)

.AddJsonFile(“config.json”,可选:true,重载更改:true)
.AddJsonFile($“config.{env.EnvironmentName}.json”,可选:true)
这确实防止了
System.IO.FileNotFound
异常,但仅通过使文件加载可选,它似乎仍然无法加载

为了调试正在发生的事情,我添加了一个
FileInfo(“config.json”)
,并且该文件存在。我尝试使用
FileInfo
对象的全名,但仍然得到异常


如何在RC2中加载
config.json
,或者如何诊断其加载失败?

您应该添加
WebHostBuilderExtensions。在生成
IWebHost
实例之前,使用ContentRoot
方法调用

例如:

    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }
publicstaticvoidmain(字符串[]args)
{
var host=new WebHostBuilder()
.UseKestrel()
.UseContentRoot(目录.GetCurrentDirectory())
.Useii整合()
.UseStartup()
.Build();
host.Run();
}

您应该添加
WebHostBuilderExtensions。在生成
IWebHost
实例之前,使用ContentRoot
方法调用

例如:

    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }
publicstaticvoidmain(字符串[]args)
{
var host=new WebHostBuilder()
.UseKestrel()
.UseContentRoot(目录.GetCurrentDirectory())
.Useii整合()
.UseStartup()
.Build();
host.Run();
}
我想知道是否出于某种奇怪的原因,它没有获得
PhysicalFileProvider
。我想知道是否出于某种奇怪的原因,它没有获得
PhysicalFileProvider