c# - 构建软件补丁的好习惯是什么?

我最近负责一个软件产品,该产品发展得相当杂乱无章,我已经建立了一个新的项目结构、一个源代码存储库、问题跟踪和一个使用 nant 和 teamcity 的构建系统。我正处于对主要分支之一的每次提交都被编译、测试并构建到设置中的地步。

对我来说,总是构建和交付完整的设置似乎是错误的,我想建立某种自动化的补丁构建,但我不知道如何做到这一点。你有什么建议我可以如何做到这一点,或者我可以在哪里找到关于这个主题的一些信息?到目前为止,谷歌没有任何帮助。

有关我当前设置的更多详细信息:

存储库: - 混帐: -- 2 个主要分支:开发和大师

构建系统: - 团队城市 - 2 种配置:一种用于构建每个分支 - 构建仅包含一个构建步骤: -- nant runner:nant 脚本是存储库的一部分,包含以下目标:clean、init、compile、test、deploy、build_setup(使用 inno setup)

我想我必须将 nant 脚本拆分为多个部分,并使用不同的构建步骤以某种方式将新构建工件与旧构建工件进行比较,并创建一个包含更新文件的补丁。我在正确的轨道上吗?如果是这样,有没有人知道如何设置 teamcity 的好例子或教程。

最佳答案

除非您拥有的是一个庞大的数兆字节的最终用户应用程序,否则生成补丁(我假设您希望将其最小化)是一项艰巨的任务,因为您必须提供每个以前版本的补丁到最最新的。

或者,您可以投资于自动更新基础架构,以便应用在发布新版本时自行更新。

至于为每次提交build设置,我个人认为这是不必要的,除非您不断测试设置程序本身。相反,应该在发布的时候手动触发完整的构建。

https://stackoverflow.com/questions/6993086/

相关文章:

c++ - 在 C++ 中将默认参数值放在哪里?

build - 使用 RequireJS 的优化器和单个构建文件来生成多个输出

c++ - 以理智、安全和有效的方式复制文件

c++ - 单例:应该如何使用

c++ - 按降序对 vector 进行排序

c++ - std::string 到 char*

c++ - 如何检查元素是否在 std::set 中?

c++ - 如何循环遍历 map 的 C++ map ?

c++ - 结合 C++ 和 C - #ifdef __cplusplus 如何工作?

c++ - 如何在 C 预处理器中可靠地检测 Mac OS X、iOS、Linux、Windows?