当我在使用VS Code进行本地开发时,我会使用端口3000,因为我是个时髦的人。而那些不太时髦的人希望它在服务器上使用8080端口。没问题,这很简单。微软文档给了我以下示例:
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.AddJsonFile("hosting.json", optional: true)
.AddCommandLine(args)
.Build();
var host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.Configure(app =>
{
app.Run(async (context) => await context.Response.WriteAsync("Hi!"));
})
.Build();
host.Run();
}
我不想使用hosting.json
。为什么呢?我有这个appsettings.{environment}.json
文件,正好可以解决这个问题。太好了,我只需要把它粘贴进去就行了。
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddCommandLine(args)
.Build();
编译器错误是什么?
env
在当前上下文中不存在。它只存在于Startup.cs
文件中--它不会在启动时调用,而是通过魔法从启动文件Program.cs
中调用。那么,我该如何解决这个问题呢?我怎样才能将特定于环境的主机设置存储在特定于环境的
appsettings.json
中,并在通过WebHostBuilder
构建特定于环境的Web主机时使用Program.cs
中的设置?