似乎构建系统的最佳实践是拥有一个可以构建所有源代码并打包发布的脚本。参见乔尔测试 #2
你如何解释不可移植的依赖关系?例如,如果您为 .net 4 编码,那么您需要在盒子上安装 .net 4。标准 MS 版本 .net 4 不是 xcopy 可部署的(除非我弄错了?)。我可以看到一些途径:
- 在某些资源文件(wiki、txt 等)中清楚地说明了依赖关系。当您调用构建脚本时,如果您没有安装依赖项,构建将失败。这是一个可以接受的结果。
- 构建脚本负责设置环境。因此,如果您需要 .net 4 并且它不在包装盒上,那么它会为您安装它。
- #2 的风格 - 该脚本不是安装依赖项,而是生成一个预打包的映像(虚拟机,Amazon EC2 AMI),该映像设置了所有依赖项
- ???