【问题标题】:Visual Studio doesn't publish appsettings.json file for DotNet Core Console AppVisual Studio 不会为 DotNet Core 控制台应用程序发布 appsettings.json 文件
【发布时间】:2017-04-21 12:49:50
【问题描述】:

我正在构建一个 DotNet Core 控制台应用程序。我注意到,当我将应用程序发布到文件系统时,appsettings.json 文件不包含在输出文件中。

我发现更改 appsettings 上的复制选项可以使其显示,但默认情况下不会。

appsettings 不应该作为单独的文件包含在控制台应用程序中,以便您可以动态配置应用程序吗?

【问题讨论】:

  • appsettings.json 是一个 json 文件,仅此而已。所以手动设置Build actionCopy to output directory 操作是可以的。
  • 似乎添加的任何 JSON 文件的默认操作都是“请勿复制”,无论名称如何......
  • .csproj 应具有以下内容:<ItemGroup><Content Include="appsettings.json;appsettings.development.json"><CopyToPublishDirectory Condition="Exists(%(Identity))">PreserveNewest</CopyToPublishDirectory></Content></ItemGroup>
  • 我想知道其他人如何处理这个问题?我的意思是其他人不编写控制台应用程序并且他们不需要设置吗?我总是想知道其他人每天都在发展的生活。
  • 嗯,一些(如果不是大多数)设置将是特定于环境的,因此不应与应用程序一起部署。很多情况下,config的存放位置是完全不同的(通常在dev中有json文件,prod中有env变量)。

标签: console-application .net-core


【解决方案1】:

我认为出于安全原因,默认情况下会留下该文件(连接字符串中的密码?)。
您可以使用this answer 来复制您的文件。

默认情况下,appsettings.json 是项目默认<ItemGroup> 的一部分,因此在列出<PackageReference> 节点的副本中添加<None> 标记。

<None Include="appsettings.json"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None>

您可以使用this link 了解有关在 .Net Core 中安全存储应用机密的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-10
    • 2022-01-27
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    相关资源
    最近更新 更多