gpt4 book ai didi

asp.net-core - dotnetpublish 未发布正确的 appsettings.{env.EnvironmentName}.json

转载 作者:行者123 更新时间:2023-12-02 03:17:54 25 4
gpt4 key购买 nike

当我在命令行中发出以下命令时:

dotnetpublish -o "./../output"-c Release

dotnetcli 正确发布了项目。但是,它不会复制 appsettings.Production.json 文件,仅复制 appsettings.json

这是为什么呢?我已经用谷歌搜索并阅读了官方核心文档,但还没有找到正确的环境 appsettings.json 应该如何出现在发布输出中。

我应该手动将 appsettings.Production.json 复制到已发布的文件夹吗?

最佳答案

更新: For current (new) .csproj format应使用 CopyToPublishDirectory 属性。它决定是否将文件复制到发布目录,可以具有以下值之一:

  • 永远,
  • 保留最新
  • 从不

因此,将下一部分添加到您的 .csproj 中:

<ItemGroup>
<None Include="appsettings.Production.json" CopyToPublishDirectory="Always" />
</ItemGroup>

查看@nover answer和所以Exclude or include files on publish有关发布期间文件控制的更多信息。

<小时/>

“在您的 project.json 文件中,您有 publishOptions 部分和 include 小节,其中您已经有一些文件,例如“appsettings.json”。 json”:

"publishOptions": {
"include": [
"appsettings.json",
"hosting.json",
"project.json",
"web.config"
]
},

您应该将“appsettings.Production.json”添加到此数组中。

根据评论进行更新:

  • 请记住,所有 appsettings.*.json 文件,例如 appsettings.development.jsonappsettings.staging.json code> 和 appsettings.development.json 将始终出现在所有环境中。您不能简单地使用 project.json 处理此问题,因为它不支持任何条件规则。将来这将会改变,届时 project.json 将是 replaced backmsbuild.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.

关于asp.net-core - dotnetpublish 未发布正确的 appsettings.{env.EnvironmentName}.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37858312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com