.net core 将ASP.NET核心辅助程序服务发布为单个文件时,appsettings.Development.json出现问题

.net core 将ASP.NET核心辅助程序服务发布为单个文件时,appsettings.Development.json出现问题,.net-core,.net Core,我将ASP.NET Core Worker服务发布为单个文件,并在csproj文件中包含以下代码,以便单个文件中不包含appsettings.json文件,并且可以在部署时根据需要进行更改 <ItemGroup> <None Include="appsettings.json"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToPubli

我将ASP.NET Core Worker服务发布为单个文件,并在csproj文件中包含以下代码,以便单个文件中不包含appsettings.json文件,并且可以在部署时根据需要进行更改

<ItemGroup>
    <None Include="appsettings.json">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <CopyToPublishDirectory>Always</CopyToPublishDirectory>
      <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
    </None>
  </ItemGroup>

总是
总是
真的
然而,我发现,即使我发布为“发布”配置,服务也引用了appsettings.Development.json

目前,我通过向csproj文件中添加以下代码来解决这个问题,但我认为这不是正确的方法

<ItemGroup>
    <None Include="appsettings.Development.json">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
      <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
    </None>
  </ItemGroup>

总是
从未
真的

好的,所以我不需要下面的

<ItemGroup>
    <None Include="appsettings.Development.json">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
      <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
    </None>
  </ItemGroup>


毫无疑问,有更好的方法来完成上述工作,但它现在正在按要求工作。

好的,所以我不需要下面的内容

<ItemGroup>
    <None Include="appsettings.Development.json">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
      <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
    </None>
  </ItemGroup>

毫无疑问,有一个更好的方法来完成上述工作,但它现在正在按要求工作

var environmentName = Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT");

var builder = new ConfigurationBuilder()  
    .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)  
    .AddJsonFile("appsettings.json")
    .AddJsonFile($"appsettings.{environmentName}.json", true);
_configuration = builder.Build();