我有一個ASP.NET項目,輸出一個類庫,然後部署到IIS的dll。按照標準構建一個配置文件也會與dll一起作爲xxx.dll.config輸出,並且它包含許多有用的環境變量,如連接字符串(即符合應用程序設置體系結構要求)。web.config不是app.config發佈到xxx.dll.config在Visual Studio 2015
在VS 2012中,xxx.dll.config文件的內容來源於項目根目錄下的app.config。
在VS 2015中看起來xxx.dll.config的內容來源於項目根目錄下的web.config。
重現步驟:
- 創建VS2015一個ASP.NET應用程序。
- 在此應用程序中添加一個app.config文件。
- 構建此應用程序。
- 打開bin文件夾,找到application.dll.config文件並將其打開。內容與Web.config相同。
- 在Visual Studio 2012中執行與步驟1到步驟4相同的操作,其內容與App.config相同。
這使我有點頭痛,因爲我依靠app.config來爲我的功能測試保存變量(連接字符串,auth提供程序),而web.config爲變爲部署的代碼保存變量。
我對AppDomain及其配置變量所做的大部分閱讀似乎表明,除非明確指示,否則Web.config不應該考慮構建輸出,即使如此,它也不容易轉換Web。配置文件,永遠不會有它最終作爲xxx.dll.config文件。
我可以重寫我的測試裝置,直接從測試中設置環境變量,但對於像ASP.Identity這樣的需要編寫相當多的新類來加載RoleManager以及我想避免的關聯提供程序的東西。
如果任何人都可以建議如何設計VS編譯來輸出配置文件,該配置文件很容易被程序集使用,並且通過nunit runner或Resharper運行nunit測試會很棒。
相反,你可以在你的源代碼控制添加新文件* .dll.config並複製你想要的條目該文件。這應該可以解決問題。 – loneshark99