在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 文件的问题,但至少可以防止我将字符串硬编码到代码中。