Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio NuGet回购协议是如何组织的?_Visual Studio_Nuget_Nuget Package_Nuget Server - Fatal编程技术网

Visual studio NuGet回购协议是如何组织的?

Visual studio NuGet回购协议是如何组织的?,visual-studio,nuget,nuget-package,nuget-server,Visual Studio,Nuget,Nuget Package,Nuget Server,我决定将.NET标准类库推送到我工作场所现有的本地NuGet repo 我是通过在Visual Studio中构建之后自动推送NuGet包来实现的: nuget push [PACKAGE_FILENAME] -Source [REPO_ON_THE_NETWORK] 在我推动之前,回购协议中有3个针对其他项目的预先存在的方案。推送之后,唯一可见的项目——通过VisualStudio中的NuGet Package Manager UI——就是我刚才推送的项目。我可以从NuGet回购中使用我的项

我决定将.NET标准类库推送到我工作场所现有的本地NuGet repo

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

nuget push [PACKAGE_FILENAME] -Source [REPO_ON_THE_NETWORK]
在我推动之前,回购协议中有3个针对其他项目的预先存在的方案。推送之后,唯一可见的项目——通过VisualStudio中的NuGet Package Manager 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
我有三个问题:

  • 为什么文件夹的组织方式如此不同?请注意,一个文件夹有一个子文件夹,其中包含实际的项目二进制文件,而其他文件夹则没有。还请注意,我最近推送的项目除了NuGet包文件之外,缺少所有内容
  • 当我们从repo中手动删除最近推送的项目时,旧项目会重新出现在NuGet Package Manager UI中。不同组织的文件夹会影响NuGet扫描回购协议的能力吗?NuGet组织项目的方式是否随着时间的推移而改变(使用较新的版本)
  • 如果没有包含任何二进制文件的文件夹,我如何能够成功地使用最近推送的项目

从您绘制的层次结构树中,我可以看到一些差异:

  • 您的软件包没有附带版本
  • 您的包没有lib文件夹
  • 现在,有两种方法可以使用NuGet CLI发布NuGet包:和。 主要区别在于
    add
    用于非HTTP包源(如MSDN上所述),它以分层方式发布包,而
    push
    并不总是这样(通常取决于提要的初始化方式)

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

    希望这有帮助