未找到 EF Core 工具 System.Configuration.ConfigurationManager 程序集

EF Core tools System.Configuration.ConfigurationManager assembly not found

我正在创建一个使用 EF Core 2 进行迁移的新应用程序。 应用程序本身是 .net Framework,但模型位于单独的 .net core 2.0 程序集中。一切正常我已经定义了一个设计时上下文工厂:

public class MyDesignTimeContextFactory : IDesignTimeDbContextFactory<MyContext>
{
    public MyContext CreateDbContext(string[] args)
    {
        return new MyContext("Server=localhost\SQLEXPRESS;Database=DBName;User ID=Test;Password=0000;");
    }
}

我可以生成迁移并将它们 apply/revert 到数据库。 现在,如果我用对配置文件的调用替换硬编码的连接字符串

return new MyContext(System.Configuration.ConfigurationManager.AppSettings.Get("ConnectionString");

我在调用 EF Core 工具时出错:

Add-Migration -Project MyProject.Model -Name Initialization
System.IO.FileNotFoundException: Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=4.0.1.0 ....,

但是 nuget 在那里,我可以在 ContextFactory(不是设计时)中访问 ConfigurationManager,在启动应用程序本身时没有问题。看起来 EF 核心工具没有在寻找模型程序集的依赖项...

有什么我想念的吗?也许无法在 DesignTime 上下文工厂中使用 ConfigurationManager?

最后问题出在了应用项目上。我必须将 System.Configuration.ConfigurationManager 的 nuget 包添加到 .Net Framework 应用程序,以便 PackatManager 可以找到它。有点奇怪,它在运行时有效,但在 "design mode".

中无效