我正在使用 NuGet服务器3.4.3 通过 TeamCity 使用以下网址
http://ngserv/guestAuth/app/nuget/v1/FeedService.svc/
尝试使用 Visual Studio 2015 Update 2 访问pakcage源并收到此错误:
[NGServ包源]
的V2源http://ngserv/guestAuth/app/nuget/v1/FeedService.svc/Search()?$filter=IsLatestVersion&searchTerm=''&targetFramework='net35'&includePrerelease=false&$skip=0&$top=26
返回了意外的状态代码“ 404 Not Found ”。
任何想法导致了什么?
注意:这适用于 Visual Studio 2015 Update 1 ,所以可能是Update 2问题?
答案 0 :(得分:3)
这是TeamCity和最新NuGet客户端的已知问题。您可以通过更新TeamCity中的协议(teamcity.nuget.api.version = v2)并使用FindPackagesById()来实现此目的。 v1协议效率极低,我们建议您不要使用它。有关更多详细信息,请查看GitHub问题here。
此外,TeamCity不再积极开发此组件,我们还建议您研究包含NuGet.Server或VSTS package management的替代托管机制。围绕pacakage存储库管理也有许多非微软的替代方案。
<强>更新强> 对不起,不是TeamCity专家。这种集成是由TeamCity团队而不是我们构建的。管理员文档here应该让您了解如何执行此操作。
答案 1 :(得分:2)
正如Harikrishna Menon A所写,您需要设置TeamCity internal property teamcity.nuget.api.version
。内部属性存储在[TeamCity Data Directory] /config/internal.properties
中。文件internal.properties
默认不存在,如果不存在则创建它。然后在文件中写入单独的字符串:
teamcity.nuget.api.version=v2
然后重新启动TeamCity服务器。 NuGet feed的URL不会改变,但是协议会。这些操作帮助我加入了TeamCity Professional 9.1.7。
答案 2 :(得分:1)
您可能想要检查的另一件事是您的网址是否正确。信不信由你,包裹饲料网址是CASE SENSITIVE。我收到了OPs错误,因为我有
feedservice.svc
代替FeedService.svc
。
另请注意,您需要使用其他名称添加包源,然后删除旧包,否则VS将有助于保留现有的大小写。确保在更正外壳后,您返回并在保存后确认它仍然正确。