未找到Nuget Package Source 404

时间:2016-05-31 11:59:54

标签: visual-studio-2015 nuget teamcity

我正在使用 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问题?

3 个答案:

答案 0 :(得分:3)

这是TeamCity和最新NuGet客户端的已知问题。您可以通过更新TeamCity中的协议(teamcity.nuget.api.version = v2)并使用FindPackagesById()来实现此目的。 v1协议效率极低,我们建议您不要使用它。有关更多详细信息,请查看GitHub问题here

此外,TeamCity不再积极开发此组件,我们还建议您研究包含NuGet.ServerVSTS 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将有助于保留现有的大小写。确保在更正外壳后,您返回并在保存后确认它仍然正确。