【发布时间】:2018-09-03 17:08:47
【问题描述】:
工具:VS2017、ASP.NET Core 2、Entity Framework Core 2、ASP.NET Core JavaScript 服务
我正在使用以下 BuildWebHost 方法:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseContentRoot(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName))
.UseStartup<Startup>()
.UseNLog()
.Build();
为了加载连接字符串,我在 ConfigureServices (startup.cs) 中有以下代码:
Action<DbContextOptionsBuilder> optionsAction = options =>
options.UseSqlServer(Configuration.GetConnectionString("RecipeDatabase"));
services.AddDbContext<RecipeContext>(optionsAction);
通过上述配置,应用程序在调试模式和 Windows 服务(发布后)下运行没有问题。
但如果我运行 add-migration,该工具将无法从 appsettings.json 加载连接字符串:
如果我这样评论以下行
//.UseContentRoot(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName))
add-migration 运行没有问题,但应用程序作为“Windows 服务”运行不是因为它找不到 appsettings.json 文件。
我怎样才能修改配置,这样就不需要再注释上面的行了?
谢谢。
迈克尔
【问题讨论】:
标签: c# asp.net-core entity-framework-core asp.net-core-2.0 asp-net-core-spa-services