私有nuget feed - 包路径文件夹和索引问题

时间:2014-04-17 04:11:30

标签: nuget nuget-package nuget-server chocolatey nugetgallery

我们使用nuget.server 2.8为我们组织中的托管nuget包(主要是巧克力包)创建一个私有订阅源。我想改进/扩展索引功能,但我无法弄清楚如何做到这一点。

我知道在典型的nuget服务器提要中,所有.NUPKG文件都位于配置中指定的包路径的根目录中。简而言之,我们要求该包中的文件夹结构,因为组织内的不同组将使用SVN提交最终到达此处的数据。为了便于管理,我们需要一个更复杂的文件夹结构。

然而,我发现包裹路径的根目录中的.NUPKG或一个深层文件夹被编入索引并可通过Feed获取。一旦你深入了两个文件夹,NUPKG文件就没有编入索引,也不能通过nuget feed获得。有一种相对简单的方法可以改变吗?这是在某处指定的设置吗?我似乎无法找到这种限制的来源。任何方向都会很突出。

2 个答案:

答案 0 :(得分:1)

我们有一些用户请求ProGet这样的功能,但最终决定不执行该功能,因为不仅要处理重复的包,而且要将该问题传达给用户。

请记住,有效的NuGet包必须具有与其版本+ id匹配的文件名(例如,MyPackage.1.2.nupkg只能是MyPackage v1.2)。因此,如果你有folderA \ MyPackage.1.2.nupkg和folderB \ MyPackage.1.2.nupkg,这是有效的吗?你们两个都无效吗?等

也就是说,实现起来很简单,因此您可以简单地使用ProGet SDK构建自己的包存储,该存储从默认继承,但也会迭代子目录。

作为旁注,如果您认真对待维护私有存储库,那么您真的应该得到NuGet.Server以外的东西。有几种可以管理巧克力包。

答案 1 :(得分:0)

符号链接是你最好的选择。您只需要定期将这些文件与计划任务进行符号链接。

我必须使用比NuGet.Server更好的东西来回答Karl的问题。根据您的增长潜力,在存储库中包含100多个包后,它可能会开始变得无法使用。 注意:我自2012年以来一直没有对此进行过检查,现在可以为多个套餐提供更好的支持。