如何在 ASP.NET Core 中转换 AppSettings

2024-05-08

我被引导相信appsettings.json及其环境对应项(开发、登台、生产)取代了 Web.config 转换。

这在开发环境中工作得很好,这些环境的变量存在于launchSettings.json

但是,如果我使用发布功能,将发布配置为使用我创建的暂存构建配置,则不会出现任何转换。

我在其他地方读到您需要创建环境变量。真的吗!事情已经到了这个地步了吗?现在,我们拥有了一组应用程序的系统环境变量,这些应用程序可能会也可能不会(随着时间的推移)在该机器上的 IIS(或其他)Web 服务器上运行。

目前我正在手动复制并粘贴“暂存”appsettings.json发布后。我已经必须将预先准备好的 Web.config 文件复制并粘贴到该文件夹​​中,因为它不再可在 IDE 中配置(但奇怪的是,仍然在发布操作期间生成)。

是否有另一种方法可以对部署进行可维护的转换,类似于旧配置文件的转换?


这实际上让很多人感到困惑,因为 Visual Studio 中的配置实际上对 ASP.NET Core 应用程序没有任何作用。 ASP.NET Core 应用程序旨在为任何环境编译一次。它运行的实际“环境”是通过配置确定的,即ASPNETCORE_ENVIRONMENT环境变量。换句话说,无论您在 Visual Studio 中部署为“调试”/“暂存”/“发布”/“其他”,它都是相同的应用程序代码。 (唯一一次不是这种情况的是,如果您要在代码中使用编译器指令,例如#if DEBUG ... #endif, 例如。这不是很常见,老实说也不推荐。)

我认为您对环境变量有误解。您仍然可以在生产中使用 JSON 配置等。唯一需要设置的环境变量是前面提到的ASPNETCORE_ENVIRONMENT.

长短,只要你设定ASPNETCORE_ENVIRONMENT到“生产”,然后你的appsettings.Production.json将按您的预期加载。没有发生任何转变。相反,特定于环境的配置用于扩展和覆盖其他配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.NET Core 中转换 AppSettings 的相关文章

随机推荐