我在我appsettings.json的数据库连接字符串、webapi 位置之类的东西中定义了一些值,这些值对于开发、登台和实时环境是不同的。
appsettings.json
有没有办法拥有多个appsettings.json文件(比如appsettings.live.json,等等)并且让 asp.net 应用程序根据它正在运行的构建配置“知道”使用哪个文件?
appsettings.live.json
您可以使用条件编译:
public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) #if SOME_BUILD_FLAG_A .AddJsonFile($"appsettings.flag_a.json", optional: true) #else .AddJsonFile($"appsettings.no_flag_a.json", optional: true) #endif .AddEnvironmentVariables(); this.configuration = builder.Build(); }