私はASP.NetコアプロジェクトをRC1から最近リリースされたRC2にアップデートしています。私が直面している1つの問題は、config.json
ファイルをStartup.cs
という構成オブジェクトにロードすることです。ASP.NetコアRC2がconfig.jsonを見つけることができません
config.json
が見つからない場合は、プロジェクトの開始に失敗し、System.IO.FileNotFound
例外がスローされます。
はここでここでは動作しませんRC2でほとんど同じコード、だRC1
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
Configuration = new ConfigurationBuilder()
.AddJsonFile("Settings/config.json")
.AddEnvironmentVariables()
.Build();
}
から動作するコードです。私はconfig.json
ファイルを、障害の原因となっていたフォルダ階層だったというレベルまで上げました。
public Startup(IHostingEnvironment env)
{
Configuration = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("config.json")
.AddEnvironmentVariables()
.Build();
}
(NB私が試したとSetBasePath
コールなしてきました。)
1つのオプションは、System.IO.FileNotFound
例外を防ぐだけではないこの2行
.AddJsonFile("config.json", optional: true, reloadOnChange: true)
.AddJsonFile($"config.{env.EnvironmentName}.json", optional: true)
で.AddJsonFile("config.json")
を交換することですファイルのロードをオプションにすることで、ロードに失敗するようです。
何が起きているのかをデバッグするには、FileInfo("config.json")
を追加しました。ファイルが存在します。私はそのFileInfo
オブジェクトから完全な名前を使用してみましたが、私はまだ例外を取得します。
config.json
をRC2にロードするにはどうすればよいですか、またはロードに失敗したと診断するにはどうすればよいですか?
https://github.com/aspnet/Configuration/blob/009a062fc6dd2a49ccef376d1c0e3ca47e252577/src/Microsoft.Extensions.Configuration.Json/JsonConfigurationExtensions.cs 'PhysicalFileProvider'を取得します。 –