包管理器控制台在运行添加迁移时无法读取连接字符串



在Visual Studio 2019中的程序包管理器控制台上运行Add-Migration时,尝试使用ConfigurationManager.ConnectionStrings["TestingDatabase"].ConnectionString访问connectionString键时会引发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>

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

包管理器控制台中的相同命令(在执行Add-Migration InitialMigration期间(会抛出System.NullReferenceException。 该解决方案包含一个项目,该项目设置为启动项目,也是包管理器控制台中的默认项目。

似乎包管理器控制台无法正确读取我的 App.config,尽管似乎没有任何明显的配置错误,因为运行项目通常工作正常。 我不知道可能出了什么问题,所以如果需要更多信息,请告诉我。

编辑:这个问题.Net Standard 2.0 ConfigurationManager不读取连接字符串是昨天发布的,似乎与我的问题非常相似。

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

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

最新更新