2010-07-09 75 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