是否可以在一个解决方案中拥有多个NuGet配置?

时间:2017-08-07 17:29:05

标签: c# .net visual-studio nuget nuget-package

我首先要说的是,我从未有过管理NuGet包的经验,即使是最简单的包。但是,我计划在我的下一个项目中使用它,设计可能依赖于我的问题的答案。

为了更好地理解这个问题,让我们假设我们有以下项目,都在一个解决方案下:

  • 核心
  • 酒吧

Foo 都取决于核心,但不会相互依赖。
因此,我想为 Foo + Core 组合创建一个nuget包,为 Bar + 核心组合,无需将它们分离到不同的解决方案。

这种情况可能吗?

1 个答案:

答案 0 :(得分:2)

是的,您的方案是可行的。 NuGet包创建并不依赖于项目所属的解决方案。 您可以定义自己的nuspec文件来打包包,也可以使用csproj文件来执行此操作。请看:https://docs.microsoft.com/en-us/nuget/tools/nuget-exe-cli-reference

注意:NuGet主要将.dll文件打包到一个包中。即使你使用.csproj文件,它也会查看并从该位置获取.dll。您可以选择使用NuSpec文件存储源代码。

对于NuSpec文件:

  • 你想要打包的东西完全取决于你,你可以做什么 in,在NuSpec文件中的东西。

对于.csproj文件(我认为这是你应该使用的):

  • 使用nuget pack <nuspecPath | projectPath> [options]命令 IncludeReferencedProjects作为选项,projectpath分别代表Foo和Bar。这将创建两个单独的NuGet包 满足您的需求。