如何使用的NuGet,使项目依赖关系(库)提供给他人

问题描述:

所有:如何使用的NuGet,使项目依赖关系(库)提供给他人

我需要就如何使用的NuGet让我的项目依赖关系(库)提供给其他开发商谁又将有我的项目作为依赖。参见下面的场景以获取详细信息:

我在解决方案(SolA)中创建了一个Visual Studio 2013项目(ProAA),该解决方案对库(LibA [我没有提交到源代码控制中]进行依赖)。我已经使用Nuget通过在解决方案SolA级别的.nuget文件夹中的Nuget.Config来管理/获取项目ProjA(即库LibA)的依赖关系,并且一切正常。开发人员能够使用Nuget从本地服务器获取LibA来检出解决方案SolA并构建/部署。

我的问题是,我现在需要让开发人员在另一个解决方案(SolB)中构建他们的项目(ProjB),但将导入/使用ProjA作为依赖项目。问题在于,我无法找到一种方法使Nuget在构建为解决方案SolB的一部分时获取ProjA(即LibA)的依赖关系。我试图将Nuget.Config文件放在ProjA的级别,但VS编译似乎忽略了它。

任何想法????

你似乎共享这里被混合两种不同的,但不是非常兼容的方法代码:

  • 代码级依赖
  • 包级依赖

代码级别的依赖性在不同的解决方案之间通常是一件坏事,你应该避免它们。一个解决方案应该封装并构建所需的所有源代码,依赖'库'DLL(无论是作为原始DLL还是通过NuGet提供)。

我建议您使用'Package-level dependency'模式重新使用您的解决方案,以便您有一个单独的'library'解决方案,该解决方案提供另一个解决方案的NuGet包(或一组NuGet包)可消耗:

下面是电流(尴尬)依赖图:

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

这是我提出具有独立的库解决方案:

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

解决方案A和解决方案B因此消耗了Solution L生成的NuGet包(库项目)。无论如何,这是依赖关系,这可能基于您描述的内容。