聚合 .Net Core appsettings.json

Aggregating .Net Core appsettings.json

我在同一个解决方案下有多个项目。我担心的是:

有没有什么方法可以将来自不同项目的所有 appsettings.json 聚合到同一个解决方案中的一个文件中?

如果您正在使用 Visual Studio,则可以使用 "Add as Link" 功能(对于其他代码编辑器,请按照图片后的说明手动更改 .csproj):

  • 例如将您的 'appsettings.json' 放入解决方案文件夹(比项目文件夹高一级);
  • 对于解决方案中的每个项目:
    1. 在解决方案资源管理器中右键单击项目名称
    2. 在上下文菜单中:添加 -> 现有项目 (Shift + Alt + A)
    3. 导航到 appsettings.json 文件
    4. 使用 "Add" 按钮的下拉菜单并单击 "Add as link"(见下面的屏幕截图)
    5. 您会看到 "appsettings.json" 添加到您的项目中,图标上有小箭头
    6. 右键单击该文件,单击属性,然后将 "Copy to output directory" 设置为 "Copy always" 或 "Copy if newer"。

保存项目后,您将在 .csproj 文件中看到这些新行(如果您使用 VS 以外的代码编辑器,则手动添加它们,没有 "Add as link" 选项):

<ItemGroup>
  <Content Include="..\appsettings.json" Link="appsettings.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemGroup>

之后,构建该项目(从 VS 或使用 'dotnet build')将 "appsettings.json" 放入输出构建文件夹。