首页 > 解决方案 > 在主函数中找不到 appsettings.json 文件?

问题描述

我正在尝试appsettings.json从 Main 方法访问并传递给以DBContext获取连接字符串。但是Configuration = builder.Build();出错了。有没有其他方法可以尝试获取连接字符串?

System.IO.FileNotFoundException: 'The configuration file 'appsettings.json' was not found and is not optional.  
The physical path is 'C:\Trunk\Repos\ZiplinePackage\bin\Debug\netcoreapp3.1\appsettings.json'.'

程序.cs

class Program
{
    public static IConfigurationRoot Configuration { get; set; }
    static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(AppContext.BaseDirectory)
            .AddJsonFile("appsettings.json");

        Configuration = builder.Build();
        var context = new DataContext(Configuration);
        var speCommonData = context.SpeCommonData.Where(s => s.Status == "NLM GENERATED").ToList();
    }
}

在此处输入图像描述

数据上下文.CS文件

public class DataContext : DbContext
{

    public DataContext(IConfiguration configuration)
    {
        configuration = configuration;
    }
    public DataContext(DbContextOptions<DataContext> options)
        : base(options)
    {
    }
    private string _connectionString;
    public static IConfigurationRoot configuration;

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        if (!optionsBuilder.IsConfigured)
        {
           optionsBuilder.UseSqlServer(configuration.GetConnectionString("MISCDBConnection"));
        }

    }

标签: c#.net.net-core

解决方案


您的应用程序在运行时找不到该文件。这意味着该文件未包含在构建中。确保appsettings.json具有以下属性:

  • 构建动作 = 内容
  • 复制到输出目录 = 如果更新则复制

在此处输入图像描述


推荐阅读