c# - 将 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时,出现此错误
解决方案
您可以在.csproj
文件中指定以下 XML:
<Content Include="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
这样你就告诉 MSBuild 进程它应该复制内容文件。
推荐阅读
- java - OpenCV Java 多 IP 摄像机
- android - 干净的架构:与不同的层共享相同的模型/实体
- vb.net - MailItem GetItemFromID 无限期挂起
- java - 带有“.”的 Json 键 作为分隔符
- c# - 在存储中找不到二进制文件
- python - 如何使用 unicode 正则表达式范围替换字符
- python - 激活批处理文件未在虚拟环境文件夹的 Scripts 文件夹中创建
- javascript - 维护排序的 jQuery 手风琴
- java - 使用 java 8 运行使用 java 1.2 (SSFnet) 开发的程序
- pointers - 结构体的值接收者