首页 > 解决方案 > 将 appsettings.json 添加到发布文件夹

问题描述

我有一个 dotnet 核心控制台项目,它从 appsettings.json 获取一些数据。它在直接从命令提示符运行时工作,即dotnet run。但是在构建时,它说在文件夹中找不到 appsettings.json。如何将 appsettings.json 复制到构建文件夹?

这是我的控制台代码:

class Program
{
    public static void Main(){
        var builder = new ConfigurationBuilder();
        BuildConfig(builder);

        Log.Logger = new LoggerConfiguration()
            .ReadFrom.Configuration(builder.Build())
            .CreateLogger();

        var host = Host.CreateDefaultBuilder()
            .ConfigureServices((context, services) =>
            {
                services.AddTransient<ICoviSlotTrackerService, CoviSlotTrackerService>();
            })
            .UseSerilog()
            .Build();

        var svc = ActivatorUtilities.CreateInstance<CoviSlotTrackerService>(host.Services);
        svc.Run();
    }

    static void BuildConfig(IConfigurationBuilder builder)
    {
        builder.SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) // adding the json file here
            .AddEnvironmentVariables();
    }

}

这是文件夹结构的方式

在此处输入图像描述

当我运行dotnet build并双击exe时,出现此错误

在此处输入图像描述

标签: c#.net-coreconsole-application

解决方案


您可以在.csproj文件中指定以下 XML:

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

这样你就告诉 MSBuild 进程它应该复制内容文件。


推荐阅读