我们使用nuget.server 2.8为我们组织中的托管nuget包(主要是巧克力包)创建一个私有订阅源。我想改进/扩展索引功能,但我无法弄清楚如何做到这一点。
我知道在典型的nuget服务器提要中,所有.NUPKG文件都位于配置中指定的包路径的根目录中。简而言之,我们要求该包中的文件夹结构,因为组织内的不同组将使用SVN提交最终到达此处的数据。为了便于管理,我们需要一个更复杂的文件夹结构。
然而,我发现包裹路径的根目录中的.NUPKG或一个深层文件夹被编入索引并可通过Feed获取。一旦你深入了两个文件夹,NUPKG文件就没有编入索引,也不能通过nuget feed获得。有一种相对简单的方法可以改变吗?这是在某处指定的设置吗?我似乎无法找到这种限制的来源。任何方向都会很突出。
答案 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年以来一直没有对此进行过检查,现在可以为多个套餐提供更好的支持。