2010-07-09 44 views
1

我正在为一个asp.net mvc项目编写单元测试。我在我的测试中使用了一个配置文件,但由于某些原因,配置文件必须位于bin文件夹中才能找到。有没有另外一种方法来做到这一点,因为我不认为这是在bin文件夹中配置文件的最佳做法。在测试环境中的asp.net访问配置文件

回答

0

在编译过程中,你的app.config文件会自动从根目录复制到bin文件夹中。您不必手动将一个app.config文件放在bin文件夹中。

假设你的项目名称为

为MyTestProject

然后生成后你的bin应包含以下内容:

MyTestProject.dll 
MyTestProject.dll.config 

加上其他任何引用的程序集。

一个有趣的事情是,如果在解决方案资源管理器中右键单击您的app.config并转到属性(F4),您应该看到“复制到输出目录”选项设置为“不要复制”。这是对的。编译器应该处理复制和重命名。如果您将该设置设置为“始终复制”,则您的bin文件夹将包含一个名为app.config的文件,运行时将忽略该文件。

编辑:如果你是从你的app.config(或web.config中)引用其他配置文件,那么这些文件将需要部署到相应的目录。这方面的一个例子可能是一个Spring.config文件,在App.config引用:

<spring> 
    <context type="Spring.Context.Support.WebApplicationContext, Spring.Web"> 
     <resource uri="~/Spring.config"/> 
    </context> 
</spring> 
+0

感谢丹尼尔,做这项工作的其他自定义配置文件,或者这是仅限于的app.config? – Matthew 2010-07-09 11:00:53

+0

我假设您的单元测试是按照默认的asp.net mvc解决方案模板在您的网站的独立程序集中?但愿如此。使用ASP.NET时,web.config将作为部署的一部分复制到应用程序或虚拟文件夹目录中。你能解释一下你的其他配置文件吗? – 2010-07-09 12:06:01

+0

嗨丹尼尔我正在使用城堡windsor进行依赖注入,它有它自己的配置文件,用于将类型关联到接口服务,在我的测试环境中,我想拥有这个配置文件的不同副本 – Matthew 2010-07-09 13:24:07