当尝试使用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昨天发布,似乎与我的问题非常相似。
答案 0 :(得分:0)
解决了变通办法。我没有使用App.config,而是创建了settings.json文件并使用Config.NET库读取它。确保将settings.json复制到输出目录。
这不能解决程序包管理器控制台无法访问App.config文件的问题,但至少可以防止我将字符串硬编码为代码。