首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TFS构建和本地构建

TFS构建和本地构建
EN

Stack Overflow用户
提问于 2013-09-23 14:47:52
回答 1查看 2.6K关注 0票数 1

我的任务是更新公司过时的构建过程。所有这些都是在批处理和perl脚本中完成的。当前的构建过程是:

  1. 通过web界面安排构建。
  2. 生成服务器将生成进程从队列中删除。
  3. 生成服务器签出TFS源代码管理中的所有文件。
  4. build服务器运行两个代码注入脚本,在生成之前修改源代码。
  5. 生成服务器更新版本并对代码签名。
  6. 生成服务器使用visual studio编译项目。
  7. 完成后,构建服务器将压缩输出并将其放到网络共享位置。

真正困难的部分是代码注入脚本。它们是3个perl脚本,可以修改大量代码。它们在设计方式上也非常依赖于机器。(因此,我不能在没有修改的情况下直接将它们放到构建过程中)

我的最终目标是能够在本地dev机器上运行构建过程,并在TFS服务器上运行CI。

在我的搜索中,似乎无法在本地机器上模拟TFS构建。那么,在我的cs.proj文件中使用预/后构建命令行脚本是我唯一的选择吗?还是有更好的方法在本地机器上进行复杂的构建,并在TFS上运行相同的构建?

我见过Using TFS build definitions on a local machine,但这对我来说有点烦人。我想如果没有更好的解决方案也不会是个可怕的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-23 15:59:55

过去我也曾尝试过做类似的事情。不幸的是,由于TFS构建工作流所需的所有内容,没有一个很好的方法来解决这个问题。我发现基本上有两种方法来解决这个问题。

  1. 创建一个将同时运行于服务器和本地的MSBuild脚本
  2. 为本地活动创建MSBuild脚本,为服务器创建自定义活动。

如果您有意或要求您能够在开发人员机器和构建服务器上准确地再现构建,那么我将选择#1。否则我将选择#2。第二个选项很好,因为这样您就可以在TFS工作流中执行您需要的主要构建,为您提供许多您需要的对象,并为您提供一个很好的地方来配置设置,而不必签出/在文件中更改构建的发生方式。

对于这两种方法,您很可能都必须修改Perl脚本以接受参数,以考虑您必须在系统之间进行的任何定制。然后,您可以让用户在本地构建的MSBuild脚本中传递它们或默认它们,并将它们设置为中的参数。因此,如果需要,可以很容易地修改它们。但是,不管采用什么方法,唯一好的方法就是标准化开发人员机器和构建服务器上需要设置的东西,这样您就不必提供大量的定制。

如果您确实选择了第一个选项,那么您可以使用用于TFS构建的,它支持对所有内容使用MSBuild脚本,然后您可以在开发人员和构建服务器之间共享脚本,但是如果有人意外地更改了这个脚本,那么它确实有破坏构建的风险。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18962340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档