具有构建顺序依赖关系的 Visual Studio 解决方案的 Bamboo CI 构建

Posted

技术标签:

【中文标题】具有构建顺序依赖关系的 Visual Studio 解决方案的 Bamboo CI 构建【英文标题】:Bamboo CI build of Visual Studio solution with build order dependencies 【发布时间】:2020-09-08 13:33:14 【问题描述】:

经验丰富的开发人员首次设置 Bamboo 持续集成。 我们有一个解决方案,其中包含多个项目。让我们说主要、服务和测试。测试有对 Main.dll 的引用,因此是构建顺序依赖项。我已将 Bamboo 配置为针对该解决方案运行,但我可以看到它正在执行 Main.dll 创建之前的测试构建。这导致它失败,因为 Main.dll 不存在。

那么两个问题:

    如何指示 Bamboo 在开始构建测试之前必须先构建 Main? 有没有办法只对“Main”进行 Bamboo 构建以确认它构建成功? (我的想法是,“Main”可能无法构建/加载,因此被跳过,从而导致缺少识别 Main.dll 的测试)

Bamboo 错误CSC:错误 CS0006:找不到元数据文件 'C:\bamboo....\PROGRAM\bin\Main.dll'

另外:正如我所暗示的那样。在 Visual Studio 上,我看到了

1>----Build started: Project: Main Configuration: Debug Any CPU
2>----Build started: Project: Services Configuration: Debug Any CPU
2> Services -> C:\Path\Program\Main\bin\Services.dll
1> Main -> C:\Path\Program\Main\bin\Main.dll
3>----Build started: Project: Test Configuration: Debug Any CPU
3>Tests -> C:\Path\Program\Tests\bin\Test.dll

竹子表演时

1>----Build started: Project: Services Configuration: Debug Any CPU
1> Services -> C:\Path\Program\Main\bin\Services.dll
2>----Build started: Project: Test Configuration: Debug Any CPU
2> CSC : error CS0006: Metadata file 'C:\bamboo\...\Project\Main\bin\Main.dll' could not be found

【问题讨论】:

仍在寻找解决方案。与我们的 IT 人员一起工作,我可以获得更多信息。因此,对于初学者来说,问题似乎与 .vs/config/applicationhost 的更新有关。 如果我们以 Bamboo 服务帐户登录并打开解决方案文件(使用 Visual Studios),它会更新 .vs/config/applicationhost。 b>.vs/config/applicationhost. 文件(自动),一切都很顺利。但是,当我们使用 Bamboo 进行干净构建时,它无法更新 .vs/config/applicationhost.,从而导致项目无法正确加载。我不确定如何进一步调试问题。 【参考方案1】:

所以我们最终通过反复试验解决了这个问题。 我们的 IT 管理员已授予 Bamboo-agent(用户)对已识别目录的完全访问权限,但其他用户仅具有读取权限。我们最终不得不授予所有用户(公共)对该目录的完全访问权限。因此,显然该进程在需要更新应用程序主机文件权限的任务期间使用了 Bamboo-agent 以外的帐户。

【讨论】:

以上是关于具有构建顺序依赖关系的 Visual Studio 解决方案的 Bamboo CI 构建的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2013 解决方案构建不按构建顺序

Visual Studio 2013 中的 MSM 合并模块:未检测到依赖关系

Visual Studio:如何通过依赖关系安排解决方案资源管理器中的项目

有没有办法在Visual Studio或MATLAB中“映射”程序执行顺序?

依赖项更改时 Visual Studio 运行自定义构建工具

更优雅的方法来解决Visual Studio中的红色波浪形的nuget依赖关系