推送到私有NuGet Feed后,NuGet包不显示(NuGet.Server,IIS)

Gre*_*rdt 3 iis visual-studio nuget nuget-server

我按照托管你自己的NuGet Feed的说明:

  1. 创建一个空的Web应用程序
  2. 安装NuGet.Server
  3. 设置~/PackagespackagesPathWeb.config中
  4. 在Web.config中设置我的API密钥
  5. 使用创建类库中的.nupkg文件 NuGet.exe
  6. 在IIS中创建了一个名为"NuGet"的新应用程序
  7. 授予读/写访问IUSRIIS_IUSRS用户和组
  8. nuget setApiKey ABC123 -Source http://localhost/NuGet从命令行
  9. nuget push Foo.Bar.dll.nupkg -Source http://localhost/NuGet

对NuGet服务器的推送成功.我可以在Windows资源管理器中查看该文件夹并查看.nupkg文件.

当我去的时候,http://localhost/NuGet/nuget/Packages我得到一个RSS源,显示我刚刚推送的包.

当我去的时候,http://localhost/NuGet/nuget/我得到一个空的包列表:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<service xml:base="http://localhost/NuGet/nuget/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
  <workspace>
    <atom:title>Default</atom:title>
    <collection href="Packages">
      <atom:title>Packages</atom:title>
    </collection>
  </workspace>
</service>
Run Code Online (Sandbox Code Playgroud)

在Visual Studio中配置NuGet以包含http://localhost/NuGet作为一个包源之后,我无法安装我刚刚推送的包.

这一切都在运行:

  • Windows 7的
  • IIS 7.5

为什么NuGet包显示在RSS feed(/NuGet/nuget/Packages)中,但不是通过/NuGet/nuget

Joh*_*sch 5

因为/NuGet/nuget/Packages是列出包的URL(它恰好是RSS格式,因为这是最初的实现决定),并且/NuGet/nuget是用于包操作的API端点,例如推送,删除等.

您发布的XML不是包的空列表,而是更多的服务描述符.一个空的包列表将是在以下位置找到的结果:/NuGet/nuget/Packages()?$filter=1 eq 2