正如标题所述,我的解决方案每个都包含依赖于另一个解决方案的项目,例如:
解决方案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文件复制到其中。
解决方案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文件复制到其中。
A\src\Lib\B.dll
。现在,将此Lib文件夹上传到Azure DevOps,以便Azure DevOps可以引用B的最新汇编。您可以通过将B的解决方案的构建输出目录设置为A\src\Lib
来完成此操作。 - Karthik