我有几个项目和几个开发人员的解决方案,每个都有自己的环境(当然)。为了管理每个环境之间的连接字符串,我为每个环境创建了几个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