Azure Pipeline - C# 构建项目取决于另一个存储库中的另一个项目

Posted

技术标签:

【中文标题】Azure Pipeline - C# 构建项目取决于另一个存储库中的另一个项目【英文标题】:Azure Pipeline - C# Build project depending on another project in another repository 【发布时间】:2022-01-23 02:42:56 【问题描述】:

我有以下情况: 关于 AzureDevops

项目 A - 存储库 A

Module3/Module3.csproj
Module1/Module1.csproj
Module2/Module2.csproj
Module1/Module1.csproj
- Solution.sln

项目 B - 存储库 B

ModuleCore/ModuleCore.csproj
-ModuleCore.sln

ModuleCore 已添加到多个项目中。

VisualStudio 中,当我们要编译 project A 时,我将 ModuleCore.csproj 添加为现有项目,编译工作。

我已经在 azure devops 上完成了几个管道,项目之间没有依赖关系,但是我遇到了困难。

当我尝试构建时,它找不到 ModuleCore 并中断。

我目前的构建任务是:

 - task: VSBuild@1
      inputs:
        solution: '$(solution)'
        msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.ArtifactStagingDirectory)"'
        platform: '$(buildPlatform)'
        configuration: '$(buildConfiguration)'        

如何构建 Project A 并将 Project B 链接为依赖项? 还有其他方法可以在管道中执行此构建吗?

【问题讨论】:

【参考方案1】:

由于 Modulecore 正在多个项目中使用,假设它是一个库,最好将其添加到 nuget(组织级别)存储库并在构建主解决方案时恢复它。

【讨论】:

感谢 S Rao,我将通过 Nuget 尝试。

以上是关于Azure Pipeline - C# 构建项目取决于另一个存储库中的另一个项目的主要内容,如果未能解决你的问题,请参考以下文章

Azure Pipeline - 构建中缺少一个 csproj

如何使用 Azure Pipeline 将 Docker 映像“推送”到 Azure 容器注册表?

Azure DevOps Pipeline构建代理:如何在程序集引用HintPath中使用或替换$(DevEnvDir)?

Azure Pipeline 中的简单 Appium 测试 - 如何修复失败的构建步骤 (vstest)?

尽管使用了工作区,但 Azure Pipeline '没有这样的模块'

Azure DevOps Build Pipeline:如何仅为更改的程序集增加程序集版本?