C# 发布单个.exe时,如何发布单独的appsettings.json文件?

C# 发布单个.exe时,如何发布单独的appsettings.json文件?,c#,.net,console-application,core,C#,.net,Console Application,Core,我有一个带有配置文件的控制台应用程序。当我在.proj中使用新的PublishSingleFile设置发布时,它会将应用程序发布为一个文件(良好),但它也会将appsettings添加到该.exe中。 这意味着此时它实际上不是一个配置文件,更多的是一个硬编码值的文件 如何使用单独的配置文件发布 当前项目设置 <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net

我有一个带有配置文件的控制台应用程序。当我在.proj中使用新的PublishSingleFile设置发布时,它会将应用程序发布为一个文件(良好),但它也会将appsettings添加到该.exe中。 这意味着此时它实际上不是一个配置文件,更多的是一个硬编码值的文件

如何使用单独的配置文件发布

当前项目设置

<PropertyGroup>
   <OutputType>Exe</OutputType>
   <TargetFramework>netcoreapp3.0</TargetFramework>
   <PublishReadyToRun>true</PublishReadyToRun>
   <PublishSingleFile>true</PublishSingleFile>
   <PublishTrimmed>true</PublishTrimmed>
   <RuntimeIdentifier>win-x64</RuntimeIdentifier>
 </PropertyGroup>

Exe
netcoreapp3.0
真的
真的
真的
win-x64

解决了它,需要在.csproj中执行以下操作

 <ItemGroup>
    <Content Include="*.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
    </Content>
  </ItemGroup>

保存最新
真的

您可以使用针对特定环境(如开发、生产等)的应用程序设置,这是您的问题吗?但这是在.NetCore环境中。我将原始版本保留在父文件夹中,然后在每次发布时将其放到适当的文件夹中。在Windows上,我注意到您可以引用父文件夹,但它在Linux上不起作用。@Rakesh不,对不起,我的意思是,当我使用dotnet publish发布时,我会得到.exe,但appsettings.json在exe中,而不是在它旁边,因此无法编辑它。