我的任务是更新公司过时的构建过程。所有这些都是在批处理和perl脚本中完成的。当前的构建过程是:
真正困难的部分是代码注入脚本。它们是3个perl脚本,可以修改大量代码。它们在设计方式上也非常依赖于机器。(因此,我不能在没有修改的情况下直接将它们放到构建过程中)
我的最终目标是能够在本地dev机器上运行构建过程,并在TFS服务器上运行CI。
在我的搜索中,似乎无法在本地机器上模拟TFS构建。那么,在我的cs.proj文件中使用预/后构建命令行脚本是我唯一的选择吗?还是有更好的方法在本地机器上进行复杂的构建,并在TFS上运行相同的构建?
我见过Using TFS build definitions on a local machine,但这对我来说有点烦人。我想如果没有更好的解决方案也不会是个可怕的解决方案。
发布于 2013-09-23 15:59:55
过去我也曾尝试过做类似的事情。不幸的是,由于TFS构建工作流所需的所有内容,没有一个很好的方法来解决这个问题。我发现基本上有两种方法来解决这个问题。
如果您有意或要求您能够在开发人员机器和构建服务器上准确地再现构建,那么我将选择#1。否则我将选择#2。第二个选项很好,因为这样您就可以在TFS工作流中执行您需要的主要构建,为您提供许多您需要的对象,并为您提供一个很好的地方来配置设置,而不必签出/在文件中更改构建的发生方式。
对于这两种方法,您很可能都必须修改Perl脚本以接受参数,以考虑您必须在系统之间进行的任何定制。然后,您可以让用户在本地构建的MSBuild脚本中传递它们或默认它们,并将它们设置为中的参数。因此,如果需要,可以很容易地修改它们。但是,不管采用什么方法,唯一好的方法就是标准化开发人员机器和构建服务器上需要设置的东西,这样您就不必提供大量的定制。
如果您确实选择了第一个选项,那么您可以使用用于TFS构建的,它支持对所有内容使用MSBuild脚本,然后您可以在开发人员和构建服务器之间共享脚本,但是如果有人意外地更改了这个脚本,那么它确实有破坏构建的风险。
https://stackoverflow.com/questions/18962340
复制相似问题