2015-05-04 18 views
8

我剛剛注意到,在構建期間,Visual Studio 2013將web.config從我的ASP.NET MVC 4 Web應用程序項目的根目錄複製到bin文件夾中,並將其重命名爲生成的帶有.config擴展名的Web應用程序DLL 。這是直接複製,因爲這些文件具有相同的時間戳。爲什麼VS 2013將ASP.NET MVC 4 web.config複製到bin和重命名?

我很熟悉爲可執行的Windows/console項目中的app.config文件執行此操作,但爲什麼它會在運行時取決於web.config的Web應用程序?

+0

此外,我剛剛證實,在執行基於文件或基於Web的部署時,VS Publish功能不包括此[dll] .config文件;該文件僅在構建後出現在項目的bin文件夾中。 – ewbi

+2

這也發生在MVC 5和VS 2015中。我想知道是否有辦法阻止這種行爲,因爲它似乎沒有任何意義。 –

+2

我也看到這個:web.config被複制到bin文件夾並重命名爲TestWebProject.dll.config。我們不需要這樣做,因爲我們在部署時加密了web.config,這是另一個我們不知道會在那裏的配置文件。 – NickRamirez

回答

2

盡我所知,bin文件夾中的配置文件並沒有沒有任何,除非您允許您將該DLL所需的設置保存在方便的地方,如果您決定將該DLL合併到更大的項目中。在這種情況下,您可能需要將配置文件合併到託管應用程序配置文件中。

這是一個相關的問題,可能會提供更多的見解。 What use has the default (assembly).dll.config file for .NET-Assemblies?

+0

謝謝,但沒有設置或項目中的實際app.settings文件。 VS似乎只是將web.config從項目的根目錄複製到bin文件夾,並將其重命名爲[dll] .settings。它甚至與項目的web.config文件具有相同的時間戳。 – ewbi

+0

如果將Web.config文件複製到bin文件夾中,您能否提供任何示例以使其具有任何優勢?我知道它對App.config文件有意義,但Web應用程序的執行方式不同,AFAIK,IIS根本不讀取複製的配置文件,只考慮原始文件。 –

+0

不,我真的不能想到任何關於將web.config複製到bin文件夾的情況。我想我似乎有一些實例,例如在MVC中,子文件夾有自己的web.config,指定該子文件夾內的文件的某些設置,但通常這些文件與應用程序的web.config不同。 –