运行添加迁移时,程序包管理器控制台无法读取ConnectionStrings

时间:2019-08-07 14:36:25

标签: visual-studio .net-core entity-framework-core connection-string

当尝试使用ConfigurationManager.ConnectionStrings["TestingDatabase"].ConnectionString访问connectionString键时,在Visual Studio 2019中的Package Manager控制台上运行Add-Migration会引发NullReferenceException。

这是Windows上的空白项目。我创建了Windows Forms App(.NET Core),并安装了基本要求-EntityFrameworkCore,EntityFrameworkCore工具和System.Configuration.ConfigurationManager。 我手动创建了一个具有以下内容的App.config文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="TestingDatabase" connectionString="myConnectionString"/>
  </connectionStrings>
</configuration>

在Debug(F5)中运行代码,该命令 Console.WriteLine(ConfigurationManager.ConnectionStrings["TestingDatabase"].ConnectionString);给了我myConnectionString,这是预期的结果。

程序包管理器控制台中的同一命令(在执行Add-Migration InitialMigration期间)引发System.NullReferenceException。 该解决方案包含一个项目,该项目设置为“启动项目”,也是Package Manager控制台中的“默认”项目。

尽管似乎没有任何明显的配置错误,但Package Manager控制台似乎没有正确读取我的App.config,因为运行项目通常可以正常进行。 我不知道有什么问题,因此,如果需要更多信息,请告诉我。

编辑:这个问题.Net Standard 2.0 ConfigurationManager Doesn't Read Connection Strings昨天发布,似乎与我的问题非常相似。

1 个答案:

答案 0 :(得分:0)

解决了变通办法。我没有使用App.config,而是创建了settings.json文件并使用Config.NET库读取它。确保将settings.json复制到输出目录。

这不能解决程序包管理器控制台无法访问App.config文件的问题,但至少可以防止我将字符串硬编码为代码。