我按照Hosting Your Own NuGet Feeds上的说明操作:
NuGet.Server
包~/Packages
设置为Web.config packagesPath
NuGet.exe
IUSR
和IIS_IUSRS
用户和群组的读/写权限nuget setApiKey ABC123 -Source http://localhost/NuGet
nuget push Foo.Bar.dll.nupkg -Source http://localhost/NuGet
对NuGet服务器的推送成功。我可以在Windows资源管理器中查看该文件夹并查看.nupkg文件。
当我转到http://localhost/NuGet/nuget/Packages
时,我会看到一个RSS Feed,显示我刚刚推送的包。
当我转到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>
在Visual Studio中配置NuGet以包含http://localhost/NuGet
作为软件包源之一后,我无法安装我刚刚推送的软件包。
这一切都在运行:
为什么NuGet包会显示在RSS Feed(/NuGet/nuget/Packages
)中,而不会显示在/NuGet/nuget
中?
答案 0 :(得分:5)
因为/NuGet/nuget/Packages
是列出包的URL(它恰好是RSS格式,因为这是最初的实现决策),/NuGet/nuget
是用于包操作的API端点,例如推送,删除等
您发布的XML不是包的空列表,而是更多的服务描述符。将在/NuGet/nuget/Packages()?$filter=1 eq 2