Nuget 包在他们的 nupkg zip 中没有依赖 dll

Nuget package don't have dependency dlls in their nupkg zip

我发布了一个包(.net461)到一个提要,这个包通过 NuGet 管理器导入了其他几个提要。

但是当我下载包时,我发现 nupkg zip 文件在 lib/net461 文件夹中没有依赖 dll。我只能看到项目 dll 本身,没有依赖 dll。我对 nuget 如何处理这些依赖项以及如果不存在依赖项 dll 时如何工作感到困惑?感谢任何帮助!

Nuget 不包含依赖项,它通过添加有关需要下载哪些其他包的信息来引用它们。

查看它们的最简单方法是使用 NugetPackageManager(来自 here)。如果你用这个工具打开 nupkg 文件,你可以在包元数据的底部看到你的包的依赖关系。

如果您在另一个项目(“C”)中使用您的 nuget(我们称之为“B”),那么依赖项(“A”)将在构建期间自动复制到“C”的项目输出文件夹, 这样你的图书馆就可以正常工作了。即 C 引用 B,B 引用 A。构建 C 时,所有三个输出 A、B 和 C 将自动复制在一起,因此 C 将 运行。这意味着在编写 C 时,甚至不需要知道库 B 使用了 A。但是,如果 C 还需要使用 A 中的类型或方法,则需要直接引用。但是同样,不需要手动复制任何内容,只需将对 A 的 nuget 的引用添加到项目 C.