gpt4 book ai didi

svn - 持续集成和自动版本标记的工作流 : . NET 项目 + CC.NET + SVN + MSBuild

转载 作者:行者123 更新时间:2023-12-01 01:21:04 27 4
gpt4 key购买 nike

我正在使用 SVN + CruiseControl.NET + MSBuild 来构建 .NET 项目。这些是技术细节,以便您了解环境和我的术语,但问题本质上更普遍。

现在,我的 CI 工作流程非常简单:

  • CC.NET 检测到 SVN 中检测到的项目主干的新修订
  • CC.NET 工作副本从 SVN 更新
  • MSBuild 是针对主干中的 .proj 文件启动的
  • 运行单元测试
  • 如果成功,则复制/部署项目

  • 在第 3 步,我想将版本号“标记”到版本上;就我而言,在 AssemblyInfo.cs 文件中,最有可能使用来自 msbuildtasks 的 AssemblyInfo 任务之类的东西。同样,我希望能够以该特定版本号重复该构建。现在,我在想可能在第 4 步之后,我需要使用标记的 AssemblyInfo.cs 将项目提交/标记回 SVN,但是我在考虑最直接的方法时遇到了麻烦。

    如果我将带有标记的 AssemblyInfo.cs 文件的项目提交回存储库,则不能提交到主干,因为这将触发另一个自动构建:无限循环。所以,我认为它需要转到一个新标签。然后我会标记修订版,将工作副本切换到标记,提交,然后切换回主干。这是常见的方式吗?

    还是我把它复杂化了?我是否应该担心将此构建提交回 repo 或只是压缩构建的项目并存储在文件系统中的结构化位置?

    最佳答案

    在我现在和以前的公司。我们在构建期间标记/修改 assemblyInfo.cs 并在每次成功构建后提交回 assemblyInfo 文件。

    防止死循环;我们从 ccnet 配置中的触发构建中排除了 asssemblyInfo.cs。

    缺点:每当我们单击强制按钮时,即使源代码没有修改,新版本也会提交回主干存储库。

    我仍在研究对 assemblyInfo 进行版本控制的更好方法:)

    2小时后添加:

    经过一番研究;而不是将 assemblyInfo 提交回主干;有些人创建了工作目录的标签(使用修改后的 assemblyInfo )
    CCNET 确实支持这种机制:SVN TagOnSuccess working copy and updated AssemblyInfo.cs

    Jeremy Miller 使用这种方法 http://codebetter.com/jeremymiller/2007/12/06/do-you-really-know-where-that-code-has-been/

    缺点:会有很多标签

    关于svn - 持续集成和自动版本标记的工作流 : . NET 项目 + CC.NET + SVN + MSBuild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9183659/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com