在源代码管理系统中包含编译器,库和其他工具有哪些建议?
在过去,我遇到了一些问题,尽管我们拥有所有的源代码,但构建旧版本的产品却是一个试图获得Visual Studio,InstallShield和其他工具的正确配置(包括用于构建产品的正确补丁版本.在我的下一个项目中,我想通过将这些构建工具检查到源代码控制中来避免这种情况,然后使用它们进行构建.这也简化了设置新构建机器的工作 - 1)安装我们的源代码控制工具,2)指向正确的分支,3)构建 - 就是这样.
我考虑的选项包括:
将安装CD ISO复制到源代码控制 - 虽然这提供了我们需要的备份,如果我们必须返回到旧版本,它不是"实时"使用的好选项(每个构建都需要从安装步骤开始,这可以很容易地将1小时的构建变成3小时).
将软件安装到源代码管理.ClearCase将您的分支映射到驱动器号; 我们可以在这个驱动器下安装软件.这不会考虑安装工具的非文件部分,例如注册表设置.
安装所有软件并在虚拟机内设置构建过程,将虚拟机存储在源代码管理中,并确定如何让VM在引导时进行构建.虽然我们轻松捕获"构建机器"的状态,但我们获得了VM的开销,并且它对"为开发人员提供相同的工具问题"没有帮助.
这似乎是配置管理的一个基本概念,但我无法追踪任何资源以了解如何执行此操作.有什么建议?
我认为VM是您最好的解决方案.我们总是使用专用的构建机器来获得一致性.在旧的COM DLL Hell days中,在安装的非开发软件(Office)上存在依赖(COMCAT.DLL,任何人).您的前两个选项无法解决任何共享COM组件的问题.如果您没有任何共享组件问题,可能它们会起作用.
没有理由开发人员无法获取相同VM的副本以便能够在干净的环境中进行调试.如果您的体系结构中有很多物理层,例如邮件服务器,数据库服务器等,那么您的问题会更复杂.