我正在尝试在我的项目中为CI设置Team City。我们目前有9名开发人员在使用该项目并使用Mercurial进行源代码管理。现在所有web.config文件都在主项目repo中被忽略,web.config文件位于一个单独的repo中,这样我们就不必使用十几个转换。
如何配置Team City / MS Build,以便我可以检查两个repos(到目前为止这个工作)然后更新repos并在执行构建之前将web.config复制到主项目文件夹?
答案 0 :(得分:3)
你真正想做的是:
每个开发人员都有自己的web.config
,但您希望构建每次都使用相同的“中心”web.config
并忽略开发人员自己的web.config
版本。
正确的吗?
如果是的话,我会以不同的方式这样做:
默认情况下,您可以让开发人员使用他们自己的web.config
文件,但仍然将“中心”web.config
放入具有不同文件名的主项目存储库中(例如,web.config.build
。<登记/>
然后,您可以在某种方式中使用BeforeBuild
(在.csproj
文件中),以便在没有web.config
文件时将其自动复制到web.config
(应该是构建服务器上的情况,但不是开发人员机器上的情况。)
阅读这个答案,看看我是如何做类似的事情:
how to ignore files in kiln/mercurial using tortoise hg “that are part of the repository”
答案 1 :(得分:0)
您可以创建第二个VCS根目录并在teamcity计算机上的结帐中“合并”文件
示例忽略了我头脑中的模式:
-:*
+:web.build.config=>website/
但我建议您遵循Christian Specht的方法,因为当您有一个web.example.config,您可以在预构建事件中复制到web.config,您可以使用新设置对其进行修改。这将由teamcity轻松获取,因为您可以让它“清理”目录(使用Swabra)来删除“旧”web.config文件并从(新)web.example.config中重新复制它。 p>