【问题标题】:Is it possible to have multiple NuGet configurations in one solution?是否可以在一个解决方案中拥有多个 NuGet 配置?
【发布时间】:2017-08-07 17:29:05
【问题描述】:

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

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

  • 核心
  • 酒吧

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

这种情况可能吗?

【问题讨论】:

  • 您应该使用 nuget pack foo.csproj -IncludeReferencedProjects(注意 pack 命令应用于 foo),因为 IncludeReferencedProjects 选项还添加了引用项目的依赖项。可能重复:stackoverflow.com/questions/16173568/…

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


【解决方案1】:

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

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

对于 NuSpec 文件:

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

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

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

【讨论】:

  • 太棒了!让我知道事情的后续。此外,尝试使用 NuGet 规范 自动生成 NuSpec 文件,以防您想继续该路线。
  • @TimorGruber 如果您解决了问题,请告诉我!否则我可能会进一步帮助你。
  • 终于有时间检查你的解决方案了,你猜怎么着?它绝对有效!我使用了 .csproj 方法,尽管我确信使用 NuSpec 文件是可能的,甚至可能更好。我把你的回答标记为这个问题的答案,非常感谢。
  • 这里太棒了!是的,NuSpec 文件方法为您提供了更多选择,您甚至可以打包不属于任何项目的无用内容。猜猜看:每当您使用 nuget pack .csproj 时,它会自动创建一个 nuspec 文件,并使用该文件创建一个包。取消归档 .nupkg 文件时可以找到此 nuspec。另外:当您想使用 csproj 元数据创建 nuspec 文件时,请尝试使用:NuGet Spec <csproj path> 命令。另外,感谢您将其标记为答案,我现在可以评论 EVERYWHERE
猜你喜欢
  • 2021-04-24
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
  • 2022-08-15
  • 2011-02-26
相关资源
最近更新 更多