NuGet 存储库是如何组织的?

How are NuGet repos organized?

我决定将 .NET Standard class 库推送到我工作场所现有的本地 NuGet 存储库。

我是通过在 Visual Studio 中构建后自动推送 NuGet 包来做到的:

nuget push [PACKAGE_FILENAME] -Source [REPO_ON_THE_NETWORK]

在我推送之前,repo 中有 3 个用于其他项目的预先存在的包。在我推送之后,唯一可见的项目 - 通过 Visual Studio 中的 NuGet 包管理器 UI - 是我刚刚推送的项目。我可以毫无问题地使用 NuGet 存储库中的项目。

我在网络上查看了文件夹本身,这是我看到的:

[ ] Repo
 |
 |_ [ ] Proj1
 |   |
 |   |_ [ ] v1.0.0
 |   |   |
 |   |   |_ [ ] lib
 |   |   |   |
 |   |   |   |_ [ ] net20
 |   |   |   |   |
 |   |   |   |   |_ .dll
 |   |   |   |   |_ .pdb
 |   |   |   |
 |   |   |   |_ [ ] net46
 |   |   |       |
 |   |   |       |_ .dll
 |   |   |       |_ .pdb
 |   |   |
 |   |   |_ .nupkg
 |   |   |_ .nupkg.sha512
 |   |   |_ .nuspec
 |   |
 |   |_ [ ] v1.0.1
 |       |
 |       |_ .nupkg
 |       |_ .nupkg.sha512
 |       |_ .nuspec
 |
 |_ [ ] MyRecentlyPushedProj
   |
   |_ .nupkg

我有三个问题:

从你画的层级树中,我看出了一些不同:

  1. 您的包没有附带版本。
  2. 您的包没有 lib 文件夹。

现在,有两种使用 NuGet CLI 发布 NuGet 包的方法:push and add。 主要区别在于 add 用于非 HTTP 包源(如 MSDN 所述)并且它以分层方式发布包,而 push 并不总是(并且它通常取决于提要是如何初始化的)。

我的建议是您查看我添加的文档,并根据该文档决定是使用一个命令还是另一个命令。据我所知,你应该使用 add.

希望对您有所帮助。