1

我们使用 nuget.server 2.8 创建了一个私有源,用于在我们的组织中托管 nuget 包(主要是巧克力包)。我想改进/扩展索引功能,但我不知道该怎么做。

我知道在典型的 nuget 服务器提要中,所有 .NUPKG 文件都将位于配置中指定的包路径的根目录中。长话短说,我们需要该包提要中的文件夹结构,因为组织内的不同组将使用 SVN 提交最终到这里的数据。为了轻松管理这一点,我们需要一个更复杂的文件夹结构。

但是,我发现包路径根目录或一个文件夹深处的 .NUPKG 已被编入索引,并可通过提要获取。一旦深入两个文件夹,NUPKG 文件就不会被索引,也不能通过 nuget 提要获得。有没有一种相对简单的方法可以改变它?这是某处指定的设置吗?我似乎无法找到这个限制来自哪里。任何方向都会很出色。

4

2 回答 2

1

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

请记住,有效的 NuGet 包必须具有与其版本+id 匹配的文件名(例如 MyPackage.1.2.nupkg 只能是 MyPackage v1.2)。因此,如果您有文件夹A\MyPackage.1.2.nupkg 和文件夹B\MyPackage.1.2.nupkg,哪个有效?您是否使两者都无效?等等。

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

附带说明一下,如果您认真维护私有存储库,那么您确实应该获得 NuGet.Server 以外的其他东西。有几种可以管理巧克力包装。

于 2014-04-18T14:25:27.327 回答
0

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

对于使用比 NuGet.Server 更好的东西,我必须支持 Karl 的回答。根据您的增长潜力,在存储库中有 100 多个包后,它可能会开始快速变得无法使用。注意:自 2012 年以来我没有亲自检查过这个,现在它可能对多个包有更好的支持。

于 2014-04-21T17:00:25.587 回答