dotnet publish -o“./../output”-c Release
dotnetcli正确地发布项目。但是它不会复制appsettings.Production.json文件,只有appsettings.json。
为什么是这样?我已经google了,阅读官方核心文档,但没有找到如何正确的环境appsettings.json应该在发布输出结束。
我应该将appsettings.Production.json手动复制到已发布的文件夹吗?
解决方法
"publishOptions": { "include": [ "appsettings.json","hosting.json","project.json","web.config" ] },
您应该将“appsettings.Production.json”添加到此数组中。
基于评论的更新:
>请记住,所有appsettings。*。json文件,如appsettings.development.json,appsettings.staging.json和appsettings.production.json将总是在所有环境中结束。你不能简单地使用project.json处理它,因为它不支持任何条件规则。这将在未来更改,当project.json将replaced back到msbuild和.csproj。如果这对您的应用程序至关重要,请考虑使用其他配置存储,如环境变量,数据库等。
>注意,该顺序很重要,因为如果它们存在于多个位置,则确定应用哪些设置。从documentation:
The order in which configuration sources are specified is important,as this establishes the precedence with which settings will be applied if they exist in multiple locations. In the example below,if the same setting exists in both appsettings.json and in an environment variable,the setting from the environment variable will be the one that is used. The last configuration source specified “wins” if a setting exists in more than one location. The ASP.NET team recommends specifying environment variables last,so that the local environment can override anything set in deployed configuration files.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。