在 App.config 文件中找不到连接字符串
No connection string could be found in the App.config file
Visual Studio解法:
(项目 1)我有一个 ASP .NET Framework API 项目,它使用 Entity Framework 访问数据库。
(项目 2) 现在我创建了调用项目 1 方法的 NUnit 项目。项目 1 的一些方法正在调用 EF 方法,所以:
- 我将 Entity framework 的 nuget 包添加到项目 2
- 我在项目 2
中创建了一个 App.config 文件
但是在执行测试方法后我得到:
Test method Test.SchedulerTesting.TestMethod5 threw exception:
System.InvalidOperationException: No connection string named
'MyEntities1' could be found in the application config
file.
我的app.config(项目2)内容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="MyEntities1" connectionString="provider=System.Data.SqlClient;provider connection string="data source=**********;initial catalog=******;user id=sa;password=**********;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
我的 Model.Context.cs(项目 1)第一行:
public partial class MyEntities1: DbContext
{
public MyEntities1()
: base("name=MyEntities1")
{
}
//...
}
当您的生产应用程序是 运行 时,应用 app.config 文件。当 运行 在测试运行器下进行测试时,您需要设置一个配置以用于您的测试。它通常包含与您的生产配置相同的内容。
在您的情况下,您需要一个名为 project2.dll.config
的配置文件,以便该配置可用于您的测试。 Visual Studio 不会自动为您重命名 App.config
,因为它不知道您要使用 NUnit。
有趣的是,我写的第一个博客 post (2005) 谈到了这个并且有更多细节:http://charliepoole.org/technical/how-nunit-finds-config-files.html
Visual Studio解法:
(项目 1)我有一个 ASP .NET Framework API 项目,它使用 Entity Framework 访问数据库。
(项目 2) 现在我创建了调用项目 1 方法的 NUnit 项目。项目 1 的一些方法正在调用 EF 方法,所以:
- 我将 Entity framework 的 nuget 包添加到项目 2
- 我在项目 2 中创建了一个 App.config 文件
但是在执行测试方法后我得到:
Test method Test.SchedulerTesting.TestMethod5 threw exception: System.InvalidOperationException: No connection string named 'MyEntities1' could be found in the application config file.
我的app.config(项目2)内容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="MyEntities1" connectionString="provider=System.Data.SqlClient;provider connection string="data source=**********;initial catalog=******;user id=sa;password=**********;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
我的 Model.Context.cs(项目 1)第一行:
public partial class MyEntities1: DbContext
{
public MyEntities1()
: base("name=MyEntities1")
{
}
//...
}
当您的生产应用程序是 运行 时,应用 app.config 文件。当 运行 在测试运行器下进行测试时,您需要设置一个配置以用于您的测试。它通常包含与您的生产配置相同的内容。
在您的情况下,您需要一个名为 project2.dll.config
的配置文件,以便该配置可用于您的测试。 Visual Studio 不会自动为您重命名 App.config
,因为它不知道您要使用 NUnit。
有趣的是,我写的第一个博客 post (2005) 谈到了这个并且有更多细节:http://charliepoole.org/technical/how-nunit-finds-config-files.html