C# 一个解决方案中是否可能有多个NuGet配置?

C# 一个解决方案中是否可能有多个NuGet配置?,c#,.net,visual-studio,nuget,nuget-package,C#,.net,Visual Studio,Nuget,Nuget Package,我首先要说的是,我从来没有任何管理NuGet软件包的经验,即使是最简单的软件包。然而,我计划在我的下一个项目中使用它,这个设计可以依赖于我问题的答案 为了更好地理解这个问题,让我们假设我们有以下项目,都在一个解决方案下: 核心 福 酒吧 Foo和Bar都依赖于核心,但并不相互依赖。 因此,我想为Foo+Core组合创建一个nuget包,为条+Core组合创建一个nuget包,而不将它们分成不同的解决方案 这种情况可能吗?是的,您的情况可能。NuGet包的创建不依赖于项目所属的解决方案。 您可

我首先要说的是,我从来没有任何管理NuGet软件包的经验,即使是最简单的软件包。然而,我计划在我的下一个项目中使用它,这个设计可以依赖于我问题的答案

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

  • 核心
  • 酒吧
FooBar都依赖于核心,但并不相互依赖。
因此,我想为Foo+Core组合创建一个nuget包,为+Core组合创建一个nuget包,而不将它们分成不同的解决方案


这种情况可能吗?

是的,您的情况可能。NuGet包的创建不依赖于项目所属的解决方案。 您可以定义自己的nuspec文件来打包包,也可以使用csproj文件来打包包。看看:

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

对于NuSpec文件:

  • 你想打包什么完全取决于你自己,你可以选择打包什么 在,在NuSpec文件中的东西中
对于.csproj文件(我认为这是您应该使用的):

  • 使用
    nuget-pack[options]
    命令
    包括引用项目
    作为一个选项,以及分别用于Foo和Bar的
    项目路径
    。这将创建两个单独的NuGet包 满足你的需要

太棒了!让我知道进展如何。另外,尝试使用NuGet spec自动生成一个NuSpec文件,以防您想要执行该路径。@TimorGruber如果您解决了问题,请告诉我!否则我可能会进一步帮助你。终于有时间检查你的解决方案了,猜猜怎么着?它绝对有效!我使用了.csproj方法,尽管我确信使用NuSpec文件是可能的,甚至可能更好。我把你的答案标记为这个问题的答案,非常感谢。很高兴来到这里!是的,NuSpec文件方法给了你更多的选择,你甚至可以打包无用的东西,而不是任何项目的一部分。猜猜看:无论何时使用nuget pack.csproj,它都会自动创建一个nuspec文件,并使用该文件创建一个包。当您取消归档.nupkg文件时,可以找到此nuspec。另外:如果要使用csproj元数据创建nuspec文件,请尝试使用:
NuGet Spec
命令。另外,感谢您将其标记为答案,我现在可以评论您应该在哪里使用nuget pack foo.csproj-IncludeReferencedProjects(注意,pack命令应用于foo),因为IncludeReferencedProjects选项还添加了引用项目的依赖项。可能的副本: