【问题标题】:How to build all projects after pushing changes推送更改后如何构建所有项目
【发布时间】:2019-09-04 20:39:34
【问题描述】:

在我尝试在 Jenkins 中为我的项目实施 CI 时,我遇到了这个问题,这很可能与我组织这些项目的方式有关。这可以简化为:

  • 我有 2 个解决方案:LegacyApp.slnModernApp.sln
  • 这些解决方案都包含一组经常修改的项目。这些是共享项目
  • LegacyApp 解决方案还包含旧版控制台应用程序项目。这不再开发了。
  • ModernApp 解决方案还包含 GUI 应用程序项目(例如 WPF)。这正在开发中,并且经常与共享项目一起更改。

注意:现实生活中大约有 20 个共享项目,每个解决方案包含 10-15 个独特的项目

我使用ModernApp.sln 进行我需要的更改。有时这些更改对LegacyApp.sln 造成了破坏,但直到每晚构建失败时我才意识到这一点(因为只有每晚构建处理LegacyApp.sln)。

问题是:处理此问题的最佳方法是什么,以便在我推送更改后 CI 构建失败?

显然,我必须在 CI 构建中包含 LegacyApp 项目,但是如何?我能想到的选项并不完美:

  1. 继续使用这 2 个解决方案并配置 CI 构建以按顺序构建它们。当我添加一个新的共享项目时,这不会扩展,因为我必须更新这两个解决方案。
  2. 将 2 个解决方案合并为一个称为 AllApps.sln 的解决方案,其中包括共享项目、LegacyApp 的独特项目和 ModernApp 的独特项目。缺点是遗留应用程序项目一直加载到 IDE 中(而不是使用不包含它们的 ModernApp.sln)。
  3. 继续使用这 2 个解决方案,但让构建在构建服务器上的构建时“合并”它们,以便它自动创建上述 AllApps.sln(或等效的东西)作为 CI 构建使用的临时文件.我不确定这是否可能。

想法?

【问题讨论】:

    标签: .net msbuild continuous-integration


    【解决方案1】:

    是否可以存储/维护某种依赖配置,以便每次合并代码时只构建依赖项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 2015-08-29
      • 1970-01-01
      • 2011-03-21
      • 2021-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多