正如标题所述,我的解决方案每个都包含依赖于另一个解决方案的项目,例如
解决方案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文件。
答案 0 :(得分:1)
在软件包中构建另一个解决方案,并将其推送到nuget feed并在第二个项目上进行还原时使用该feed