簡體   English   中英

.net核心控制台項目中未包含appsettings.json文件

[英]appsettings.json file not in .net core console project

我了解.net核心已將app.config文件替換為appsetting.json。 但是,似乎只為ASP.net項目添加了此文件。 實際上,它甚至在添加項列表中都不可用。 我發現這篇文章中列出了需要添加的軟件包:

  1. Microsoft.Extensions.Configuration
  2. Microsoft.Extensions.Configuration.FileExtensions
  3. Microsoft.Extensions.Configuration.Json

我添加了所有這些內容,它的確使我可以選擇添加json配置文件,但仍然不能添加僅在ASP.Net Core下可用的“ App Settings File 我試圖理解為什么非Web項目不需要配置以及配置.net核心控制台應用程序的推薦方法是什么。 提前致謝。

非Web項目可能需要配置, 可能不需要。 但是,正如您所注意到的,Visual Studio不會使用appsettings.json控制台項目。 顯然,您可以將其作為json文件添加到項目中。 一旦擁有它,挑戰就是要利用它。 我經常在實體框架實用程序中使用配置對象和依賴項注入。

例如,

public static class Program
{
    private static IConfigurationRoot Configuration { get; set; }

    public static void Main()
    {
        IConfigurationBuilder builder = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .AddEnvironmentVariables();
        Configuration = builder.Build();

        IServiceCollection services = new ServiceCollection();
        services.AddDbContext<MyDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
        services.AddScoped<IMyService, MyService>();
        IServiceProvider provider = services.BuildServiceProvider();

        IMyService myService = provider.GetService<IMyService>();
        myService.SomeMethod();
    }

    public class TemporaryDbContextFactory : IDesignTimeDbContextFactory<MyDbContext>
    {
        public MyDbContext CreateDbContext(string[] args)
        {
            IConfigurationBuilder configBuilder = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json")
                .AddEnvironmentVariables();
            IConfigurationRoot configuration = configBuilder.Build();
            DbContextOptionsBuilder<MyDbContext> builder = new DbContextOptionsBuilder<MyDbContext>();
            builder.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
            return new MyDbContext(builder.Options);
        }
    }
}

這使我可以針對DbContext運行遷移基於控制台的實用程序。 您無需指定所需的配置類型,因此這只是一個示例。 但希望您可以根據需要進行調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM