Vb.net 预生成事件后忽略App.Config
我有一个包含几个项目和几个开发人员的解决方案,每个项目和开发人员都有自己的环境(当然)。为了管理每个环境之间的连接字符串,我为每个环境创建了几个app.config文件:app.config.dev、app.config.qa等 预构建事件只是将app.config.$(ConfigurationName)复制到app.config。此预构建事件针对解决方案中的每个项目完成,并且连接字符串包含在每个项目中(包括测试项目) 当我使用预构建事件管理app.config文件时,找不到连接字符串。我可以通过两种方法让测试正常运行:1。不要使用预构建事件来管理app.config文件选择,请自己或2来管理。如果我签出app.config并使其可写,那么预构建事件就可以正常工作 我们将VisualStudio2008与VSS一起使用 我现在只剩下最后一头白发了,有什么想法吗? 提前谢谢 解决方案 更新预生成事件以确保app.config文件即使签入也可写入。以下使用的预构建事件:Vb.net 预生成事件后忽略App.Config,vb.net,visual-studio-2008,app-config,Vb.net,Visual Studio 2008,App Config,我有一个包含几个项目和几个开发人员的解决方案,每个项目和开发人员都有自己的环境(当然)。为了管理每个环境之间的连接字符串,我为每个环境创建了几个app.config文件:app.config.dev、app.config.qa等 预构建事件只是将app.config.$(ConfigurationName)复制到app.config。此预构建事件针对解决方案中的每个项目完成,并且连接字符串包含在每个项目中(包括测试项目) 当我使用预构建事件管理app.config文件时,找不到连接字符串。我可以
@echo off
attrib-r$(ProjectDir)app.config
如果错误级别1转到属性失败
copy$(ProjectDir)app.config.$(ConfigurationName)$(ProjectDir)app.config
转到BuildOK
:AttribFailed
echo Attrib-r在$(ProjectDir)app.config上失败
退出1
:BuildOK
echo Copy Done
听起来你的app.config不应该受源代码控制-只应该是构建配置特定的配置文件(app.config.dev、app.config.qa等)
话虽如此,您可以使签入文件在VSS下可写。例如,通过windows资源管理器,取消选中文件的“只读”属性。(每次签入时都必须这样做。)保留.config文件的签入有一个副作用,即文件保持只读。这有一个副作用,即不能在只读文件上复制文件,也不能将其删除。这对解释为什么你不能让它工作有很大帮助 最好在后期生成事件中使用attrib.exe+r使副本可写。我已经尝试过了,但是我弄乱了attrib的语法。添加错误处理代码有助于识别问题。如果app.config不在解决方案中且不受源代码管理,则在构建应用程序时不会使用它,并且我无权访问配置字符串。我将尝试在生成事件之前使其可写,而不签出文件。更新预生成事件使文件可写成功。谢谢你的建议。