构建脚本 - 如何做到这一点

时间:2009-12-17 14:35:46

标签: msbuild build batch-file

大约2个月前,我超越了现有公司的建设过程。虽然我对它知之甚少,但我是唯一有足够时间的人,所以我没有太多选择。

情况不是那么好,我想做以下事情:

  1. 使用版本标记SourceSafe中的文件(示例ProjectName PV 1.2)
  2. 从SourceSafe到特定目录的GetFiles
  3. 构建vb6 / c ++ / c #projects(是的,有各种各样的)
  4. 构建InstallShield设置
  5. 现在部分使用批处理脚本(一个用于标记和获取,一个用于构建等)完成。因此,当建立开始时,我几乎要照顾它。 这段代码的很大一部分可以重复使用。

    有关如何做得更好的任何建议?一个大问题是项目之间的一大堆依赖关系。此外,标签必须增加版本,并在必要时将PV更改为EV。

    我希望尽可能减少用户互动。只需点击一个构建脚本(Spolsky就是上帝),一切都完成了,无需增加版本,设置获取文件和类似内容的位置。

    批处理脚本是最好的方法吗?我应该用msbuild做一些功能吗?还有其他选择吗?

    不需要特定的代码,现在我只需要一种方法来改进它,即使它不会受到伤害。

    TNX, 马尔科

2 个答案:

答案 0 :(得分:1)

听起来像是想要一个持续的集成解决方案,比如CC.Net。它具有配置选项,可以完成您想要的所有事情,还有一个很棒的社区来回答问题。

此外,批处理脚本可能不是一个好选择。先进的构建和集成工具将允许您将参数提供给构建,并为不同的环境(测试,生产等)创建不同的构建。批量脚本将涉及大量的手工编码和粘合。

答案 1 :(得分:1)

由于您已经拥有一个构建系统(即使其中一些当前是“手动”),无论您做什么,都不要从头开始。

(1)确保您有可以使用的测试机器(或虚拟机)。因此,您可以进行更改和改进,而无需担心破坏任何内容。

(2)将所有构建脚本和工具放在版本控制中,而不仅仅是源代码。然后在进行更改时,查看它们是否有效。如果是,则将它们保存到版本控制。如果他们不这样做,那就回滚。

(3)一次选择一个区域进行处理。不要试图一次做所有事情。无论您使用何种构建系统,从大量手工工作到“一键式”都需要时间。