.net core 在dotnet core 2.1中编译后的appsettings在哪里
我试图了解在dotnet core 2.1应用程序中,.net core 在dotnet core 2.1中编译后的appsettings在哪里,.net-core,appsettings,.net Core,Appsettings,我试图了解在dotnet core 2.1应用程序中,appsettings.json和appsettings.{Environment}.json以及环境变量是如何发挥作用的,但我不知道应用程序在运行时如何访问appsettings(无论最终转换是什么) 我希望在编译的dll中有appsettings(例如:MyWebApiApp\bin\Debug\netcoreapp2.1),但我没有看到它 理解这一点将帮助我找到OpenShift configmaps与appsettings的最佳方法,
appsettings.json
和appsettings.{Environment}.json
以及环境变量是如何发挥作用的,但我不知道应用程序在运行时如何访问appsettings(无论最终转换是什么)
我希望在编译的dll中有appsettings(例如:MyWebApiApp\bin\Debug\netcoreapp2.1
),但我没有看到它
理解这一点将帮助我找到OpenShift configmaps与appsettings的最佳方法,因为我需要知道我是否应该在运行时依赖appsettings,或者appsettings是否对开发有用,但在生产中我应该依赖环境变量而不是环境变量
谢谢 是否从Visual Studio中运行代码?默认的
CreateDefaultBuilder
使用目录.GetCurrentDirectory()
确定从哪个文件夹加载设置文件。当您在Visual Studio中运行时,当前目录是您的项目目录-因此,当您运行/调试程序时,它会找到正确的设置文件
测试这一点的一种方法是切换到命令行,并使用dotnetmyapp.dll
运行应用程序。如果从appsettings
文件加载设置,它将找不到该文件,并且设置将为空
如果将appsettings
文件上的属性更改为copy If newer
并重新生成应用程序,当您从命令行运行应用程序时,它将正确找到设置文件
通过查看,您可以了解Web主机如何确定要使用的设置。但简而言之,dotnetcore将按以下顺序使用设置:
- appsettings.json
- 环境变量
- 命令行
appsettings
文件,但根据我的经验,通过环境变量处理生产设置要容易得多,可能需要使用第三方工具,例如puppet
希望有帮助