我有幾個項目和幾個開發人員的解決方案,每個都有自己的環境(當然)。爲了管理每個環境之間的連接字符串,我爲每個環境創建了幾個app.config文件:app.config.dev,app.config.qa等。App.Config預構建事件後忽略
預生成事件只需複製app.config。 $(ConfigurationName)到app.config。此預生成事件是針對解決方案中的每個項目完成的,每個項目(包括測試項目)中都包含連接字符串。
當我使用預生成事件來管理app.config文件時,無法找到連接字符串。我可以通過2種方法讓測試運行良好:1.不要使用預生成事件來管理app.config文件選擇,並且自己或者2。如果我檢出app.config並使其可寫,那麼預生成事件就可以正常工作。
我們正在使用Visual Studio 2008和VSS。
我倒在我最後的灰色頭髮這裏,有什麼想法嗎? 在此先感謝!
SOLUTION 更新的預生成事件,以確保app.config文件,甚至如果在檢查寫入預生成事件下面使用:
@echo off
attrib -r $(ProjectDir)app.config
if errorlevel 1 goto AttribFailed
copy $(ProjectDir)app.config.$(ConfigurationName) $(ProjectDir)app.config
goto BuildOK
:AttribFailed
echo Attrib -r Failed on $(ProjectDir)app.config
exit 1
:BuildOK
echo Copy Done
如果app.config不在解決方案中,也不在源代碼控制之下,那麼在構建應用程序時不會使用它,並且我無法訪問配置字符串。我將嘗試在構建事件之前將其寫入,而不檢查文件。 – 2011-03-16 15:56:31
更新了Pre-Build事件以使文件可寫。謝謝@HansPassant的建議。 – 2011-03-16 16:18:02