Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure DevOps如何通过引用另一个解决方案中的另一个项目来构建项目_C#_Asp.net_Azure_Asp.net Core_Azure Devops - Fatal编程技术网

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

C# Azure DevOps如何通过引用另一个解决方案中的另一个项目来构建项目,c#,asp.net,azure,asp.net-core,azure-devops,C#,Asp.net,Azure,Asp.net Core,Azure Devops,正如标题所说,我的每个解决方案都包含依赖于另一个解决方案的项目,例如 解决方案A AA计划 AB项目 项目AC 解决方案B(只包含一个类库,该类库有一个我放入自定义appsettings.json文件的文件夹。这不能在DevOps上构建,因为它不算作项目) 工程学士 溶液AA和AC参考BA。在AA和AC项目的.csproj中,有一个显示BA位置的HintPath 当我在本地环境中编译时,一切都很好,它能够正常编译和运行 我使用GitHub作为存储库,当我从Azure DevOps引用它并尝试构建

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

解决方案A

AA计划 AB项目 项目AC 解决方案B(只包含一个类库,该类库有一个我放入自定义appsettings.json文件的文件夹。这不能在DevOps上构建,因为它不算作项目)

工程学士 溶液AA和AC参考BA。在AA和AC项目的.csproj中,有一个显示BA位置的HintPath

当我在本地环境中编译时,一切都很好,它能够正常编译和运行

我使用GitHub作为存储库,当我从Azure DevOps引用它并尝试构建我的解决方案a时,我会遇到以下错误:

D:\a\u 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\u 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上构建我的解决方案,而不必将其转换为NuGet包

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

编辑:

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


如果将其设置为NuGet软件包,则无法将appsettings.json文件复制到其中。

将另一个解决方案构建到软件包中,并将其推送到NuGet feed,然后在第二个项目上执行恢复时使用该feed

还有其他方法吗?我宁愿不使用nuget。此外,解决方案B需要不断加载文件。将解决方案B输出到Lib文件夹。上载Lib文件夹,解决方案A可以从中访问它。因此,当您构建它时,解决方案A将引用Lib文件夹并能够构建其解决方案。解决方案A在GitHub中,解决方案B也是。当我从Azure DevOps引用它时,它不知道解决方案B存在。我理解这一点。我要说的是,将B的程序集输出到本地工作目录中a文件夹下的Lib文件夹。例如,
A\src\Lib\B.dll
。现在,将此Lib文件夹上载到Azure DevOps,以便Azure DevOps可以引用B程序集的最新版本。您可以通过将B的解决方案的生成输出目录设置为
A\src\Lib