【发布时间】:2016-08-31 17:52:29
【问题描述】:
我的 .Net 核心应用程序中有 3 个特定于环境的 appsettings 文件
在project.json 我有这样的设置publishOptions。 (基于建议here)
"publishOptions": {
"include": [
"wwwroot",
"appsettings.development.json",
"appsettings.staging.json",
"appsettings.production.json",
"web.config"
]
},
我有 3 个相应的启动类,它们根据环境使用适当的appsettings
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: false, reloadOnChange: true);
但是,当我发布应用程序时,所有 3 个 appsettings 文件最终都会出现在所有环境中。如何发布特定于环境的 appsetting 文件?
【问题讨论】:
-
有人可以回答这个问题吗?将所有 appsettings.json 文件发布到所有环境中确实没有意义。
-
只要您在 Windows 上托管,就可以了,但如果您切换到区分大小写的操作系统 (*nix),您就会遇到麻烦。例如。 MS 的 EnvironmentName 字符串是 PascalCased。
-
您找到解决方案了吗?我正在使用 asp.netcore 3.1
-
并非如此。目前,我的 powershell 脚本会复制整个发布文件夹,然后删除不需要的 appsettings。请注意,即使您不删除 appsettings,您的应用程序也不会全部使用。您的应用程序将只使用
appsettings.json和appsettings.{environmentname}.json。启动时加载文件的顺序在这里很重要
标签: asp.net-core .net-core asp.net-core-1.0 coreclr