所以,我今天通过签入一个配置文件终止了构建。它知道服务器在哪里(比如SQL server或类似的服务器),而我一直在使用在我的机器上运行的服务器。通常,或者更确切地说,在其他情况下,我们会与中央服务器运行。当然,每日构建没有找到‘我的’服务器,因此出现了损坏。然后,在签入之前编辑配置文件以指向“正常”服务器,并在签入之后再次编辑它是很繁琐的。
我一直想让VC忽略配置文件,这样它就不会被意外地签入。另一方面,存储库应该包含一个干净的、可用的文件版本。我不可能忽略它,同时让它签入,现在,我可以吗?
所以,我要找的是一种让文件检出,但永远不会检入的方法。至少在最常见的情况下--如果配置文件发生了重大变化,那么将新版本放入存储库中的一些特殊过程是可行的。
如果你们以前遇到过这个问题,我会对你们找到的任何解决方案感兴趣。只要不破坏构建,也就是说;)
发布于 2009-02-10 21:19:56
您可以做的是有一个默认的配置文件,它保持不变,除非添加一些新的配置。然后您有一个不同的文件,它覆盖了默认文件的配置。
config.Default.xml
config.User.xml只有config.Default.xml是受源代码控制的。config.User.xml只包含与您不同的配置。因此,假设您在本地SQL server上进行测试,您只需将连接字符串放入其中,它将覆盖config.Default连接字符串。
看一看.Net框架应用程序配置,它为您完成了大部分(如果不是全部)工作。
发布于 2009-02-10 20:47:52
我使用的一种方法是有两个版本的配置文件,并让安装程序脚本提取正确的版本。
这两个文件包含相同的密钥,但一个包含'dev‘值,另一个包含我们期望在字段中部署和编辑的值。
发布于 2009-02-10 20:55:42
我们有
Hudson删除初始文件,并为正确的环境部署正确的文件(当前仅有cert)。
这允许开发人员独立地记录和开发生产、证书和开发级配置文件,并在SVN中分别对它们进行版本控制。
https://stackoverflow.com/questions/534119
复制相似问题