如何使用Nuget使其他人可用的项目依赖关系(库)



all:

我需要建议如何使用Nuget将我的项目依赖关系(库)提供给其他开发人员,这些开发人员又将我的项目作为依赖关系。有关详细信息,请参见下面的方案:

我在解决方案(Sola)中创建了一个Visual Studio 2013项目(ProJA),该项目对库有一个依赖性(Liba [我不投入源控制])。我已经使用nuget通过nuget.config在解决方案sola级别的.nuget文件夹中管理/获取项目proja(即库liba)的依赖关系,一切正常。开发人员能够结帐解决方案Sola并使用本地服务器的Nuget提取liba构建/部署。

我的问题是,我现在需要让开发人员在另一个解决方案(SOLB)中构建他们的项目(ProJB),但它将导入/使用Proja作为依赖项目。问题是,我找不到使Nuget作为解决方案溶液的一部分时获取Proja(即Liba)的依赖性的方法。我尝试将nuget.config文件放在proja的级别中,但vs build似乎忽略了它。

任何想法????

您似乎正在混合两种不同但不兼容的代码共享方法:

  • 代码级依赖关系
  • 软件包级依赖关系

不同解决方案之间的代码级依赖性通常是一件坏事,您应该避免使用它们。解决方案应依靠"库" DLL(无论是原始DLLS还是通过Nuget)封装并构建所需的所有源代码。

我建议您使用"软件包级依赖关系"模式重新设计解决方案,以便您拥有单独的"库"解决方案,该解决方案提供了Nuget软件包(或Nuget软件包的集合),其他两个解决方案可以使用该解决方案消费:

这是当前(尴尬)依赖关系图:

Solution A            Solution B
  Proj A ----------->  Proj B
    ^--------------------'

这是我使用单独的库解决方案提出的:

    +----> Solution L <----+
    |                      |
Solution A             Solution B

解决方案A和解决方案B因此消耗了解决方案L(库项目)产生的Nuget软件包。这是根据您描述的内容,可能是您的代码基础的依赖关系。

最新更新