Azure DevOps如何通过引用另一个解决方案中的另一个项目来构建项目

时间:2019-06-18 03:16:24

标签: c# asp.net azure asp.net-core azure-devops

正如标题所述,我的解决方案每个都包含依赖于另一个解决方案的项目,例如

解决方案A

AA项目 AB项目 AC项目 解决方案B(仅包含一个类库,该类库的文件夹中放置了自定义的appsettings.json文件。由于无法将其作为项目而无法在DevOps上构建)

项目BA 解决方案AA和AC参考BA。在AA和AC项目的.csproj中,有一个提示路径,显示BA的位置

当我在本地环境上编译时,一切都很好,并且可以正常编译和运行。

我使用GitHub作为存储库,当我从Azure DevOps引用它并尝试构建解决方案A时,出现以下错误:

  

D:\ a_tool \ dotnet \ sdk \ 2.2.103 \ Microsoft.Common.CurrentVersion.targets(2110,5):   警告MSB3245:无法解析此引用。找不到   程序集“ CentralApplicationSettings”。检查以确保   程序集存在于磁盘上。如果您的代码需要此参考,   您可能会遇到编译错误。   [D:\ a \ 1 \ s \ ManagementStudio.ClassLibrary \ ManagementStudio.ClassLibrary.csproj]   D:\ a_tool \ dotnet \ sdk \ 2.2.103 \ Microsoft.Common.CurrentVersion.targets(2110,5):   警告MSB3245:无法解析此引用。找不到   程序集“ CentralApplicationSettings”。检查以确保   程序集存在于磁盘上。如果您的代码需要此参考,   您可能会遇到编译错误。   [D:\ a \ 1 \ s \ ManagementStudio.Data \ ManagementStudio.Data.csproj]

基本上是说它找不到来自GitHub的必需引用,这是有道理的,因为GitHub和DevOps没有类似的文件夹结构,因此HintPath对编译器没有意义。

建议我将解决方案B更改为NuGet软件包,但问题是,每次部署新解决方案时,都需要将自定义的appsettings文件放置在此处,这样就可以了。

是否有另一种方法可以在Azure DevOps上构建解决方案A,而不必将其转换为NuGet程序包?

解决方案A类似于帐户管理应用程序,因此我打算将其与另一个更专用的应用程序一起部署。

编辑:

解决方案B有一个文件夹,我将自定义的appsettings.json文件放在该文件夹中,以便其他已部署的应用程序可以访问它们。就像一个appsettings库。

如果我将其制作为NuGet程序包,则无法在其中复制appsettings.json文件。

1 个答案:

答案 0 :(得分:1)

在软件包中构建另一个解决方案,并将其推送到nuget feed并在第二个项目上进行还原时使用该feed