Azure DevOps如何在引用另一个解决方案中的另一个项目时构建项目

4
正如标题所述,我的解决方案每个都包含依赖于另一个解决方案的项目,例如:
解决方案A
- 项目AA - 项目AB - 项目AC - 解决方案B(仅包含一个类库,其中有一个文件夹,我放置自定义appsettings.json文件。由于它不算作项目,无法在DevOps上构建)
项目BA
解决方案AA和AC引用了BA。在项目AA和AC的.csproj中,有一个提示路径显示BA的位置。
在我的本地环境编译时,一切正常,可以成功编译和运行。
我使用GitHub作为存储库,当我从Azure DevOps引用它并尝试构建我的解决方案A时,我会收到以下错误:
警告MSB3245:无法解析此引用。无法定位程序集“CentralApplicationSettings”。请确保程序集存在于磁盘上。如果您的代码需要此引用,则可能会出现编译错误
它基本上是说无法从GitHub找到所需的引用,这很有道理,因为GitHub和DevOps没有类似的文件夹结构,因此HintPath对编译器来说没有意义。
有人建议我将解决方案B更改为NuGet程序包,但问题是,每次部署新解决方案时,我都需要将自定义appsettings文件放在那里,因此不可行。
有没有另一种方法可以在Azure DevOps上构建我的解决方案A,而无需将其转换为NuGet程序包?
解决方案A就像一个账户管理应用程序,因此我打算将其部署到另一个更具目的性的应用程序旁边。
编辑:
解决方案B有一个文件夹,在那里我放置自定义的appsettings.json文件,以便其他部署的应用程序可以访问它们。它就像一个appsettings库。
如果我将其变成NuGet程序包,则无法将appsettings.json文件复制到其中。

将解决方案B输出到Lib文件夹。上传Lib文件夹,以便解决方案A可以访问它。因此,在构建时,解决方案A将引用Lib文件夹,并能够构建其解决方案。 - Karthik
解决方案A和解决方案B都在GitHub上。当我从Azure DevOps引用它时,它并不知道解决方案B的存在。 - JianYA
我理解这一点。我的意思是,将B的汇编输出到本地工作目录下A文件夹中的Lib文件夹中。例如,A\src\Lib\B.dll。现在,将此Lib文件夹上传到Azure DevOps,以便Azure DevOps可以引用B的最新汇编。您可以通过将B的解决方案的构建输出目录设置为A\src\Lib来完成此操作。 - Karthik
1个回答

1
将另一个解决方案打包并推送到NuGet Feed,然后在第二个项目还原时使用该Feed。

有别的办法吗?我不想使用nuget。另外,解决方案B需要不断地将文件加载到其中。 - JianYA
@JianYA,你有没有找到解决这个问题的方法?我目前也处于同样的情况。Web.Core、Web.A和Web.B。A和B需要引用Core。它们都在自己的项目中。如果我添加对Core的项目引用,它就不受源代码控制了。 我的当前解决方案是使用附加测试应用程序开发和构建Core,然后项目A和B获取对Core的DLL引用。它不是非常动态,但它可以工作。 - Holm76

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接