我正在使用TeamCity来构建一个.NET项目(准确地说是多个项目)。
我应该使用Rebuild目标还是Build目标?
我希望尽量缩短构建时间,同时不生成任何未更改的项目的新版本。
使用“Build”目标是安全的吗?如果先前的项目输出被删除了怎么办?如何验证我可以安全地这样做?
我正在使用TeamCity来构建一个.NET项目(准确地说是多个项目)。
我应该使用Rebuild目标还是Build目标?
我希望尽量缩短构建时间,同时不生成任何未更改的项目的新版本。
使用“Build”目标是安全的吗?如果先前的项目输出被删除了怎么办?如何验证我可以安全地这样做?
在持续集成服务器上执行rebuild操作是必须的。
与您可能读到的相反,之前构建的数据泄漏到当前构建中是有可能的。这种泄漏几乎永远不是由于源代码没有编译成二进制文件,而是取决于您用来执行构建的工具,可能会有未复制到输出目录的非代码文件,或者已删除但未从其中删除的文件。
出于类似的原因,如果您可以承受执行时间成本,您也应该在构建之前始终清理源树。要么销毁它并检查干净的副本,要么恢复更改并删除任何未受源代码控制的文件。如果您每次都不这样做,则至少在“空闲时间”构建(例如,过夜或周末构建)以及您打算交付给客户或部署到生产环境(最好是到QA)的构建上这样做。
Build 会生成运行项目所需的所有内容,同时保留未更改的程序集。Rebuild 强制重新构建涉及到的所有程序集。除非出于特定情况(如版本号、依赖进程等),否则使用 Build 可以最大程度地减少时间消耗。
你应该使用 Build 命令逐步构建你的项目。这是完全安全的。