参考装配中的ConfigurationManager

时间:2013-03-19 14:57:26

标签: c# visual-studio configurationmanager

使用VS 2012 C#.net 4.0,我有一个使用ConfigurationManager for config构建控制台应用程序的项目。 一切都很好。

我在同一个解决方案中有第二个项目用于测试第一个项目(使用nunit) 这个nunit项目包括第一个项目作为参考,并将第一个项目的可执行文件作为子进程执行。

这不起作用。因为,尽管nunit项目构建了第一个项目的可执行文件,但它不会创建[第一个项目可执行文件] .exe.config文件。

任何人都知道为什么不呢?在我构建nunit项目时,是否有一个按钮可以推送[第一个项目可执行文件] .exe.config?

2 个答案:

答案 0 :(得分:1)

每次使用配置文件时,该文件都必须与正在运行的进程相关联。在这种情况下,运行过程是您的单元测试项目。

在单元测试的上下文中使用ConfigurationManager时,它将为单元测试项目查找值的配置文件(App.Config)。

您正在引用控制台应用程序程序集,但无法在单元测试过程中引用控制台应用程序的配置文件。

因此,您应该向单元测试项目添加一个新的App.Config并将配置值放在那里。

希望这有帮助。

答案 1 :(得分:0)

它可能不太漂亮,但添加了预构建事件:

copy "$(SolutionDir)ConsoleApp\App.config" "$(TargetDir)ConsoleApp.exe.config"

解决了我当前的问题。