具有多个项目的 NuGet 包解决方案

Sam*_*Sam 5 c# dependency-injection class-library nuget-package visual-studio-2015

我有一个包含 3 个类库项目的解决方案。我使用依赖注入在这些项目之间创建松散耦合,这些项目是:

  • 服务是实际功能
  • 领域
  • 存储库

因此,最终,我的 NuGet 包只会公开“服务”中的函数,但服务函数使用存储库方法和域对象。所以所有的东西都应该包含在我的包裹中。

这是我感到困惑的地方:

  1. 如何确保我的 NuGet 包包含所有必要的部分,即域对象和存储库方法。域对象是公开的,但存储库方法仅由服务功能使用,因此最终它们对用户不可见。尽管如此,我的服务功能需要它们,因此它们必须包含在包中。
  2. 我也对将这三个项目捆绑在一起感到困惑,这通常是在顶层完成的。换句话说,安装 NuGet 包是不够的,因为需要解决依赖关系。例如,如果我在新的 ASP.NET 项目中添加 NuGet 包,我必须在 Startup.cs 中解决这些依赖关系,这看起来有点尴尬。不知道如何处理该部分。
  3. 每个项目都有自己的依赖项。例如,存储库项目使用 Azure 表存储,服务项目使用 NewtonSoft.Json。我想确保当用户在新项目中安装我的 NuGet 包时,所有依赖项都将被覆盖。

我该如何创建这个 NuGet 包?