Личный канал Nuget - папки с путями к пакетам и проблемы с индексацией

Мы использовали nuget.server 2.8, чтобы создать частный канал для размещения пакетов nuget (в основном шоколадных пакетов) в нашей организации. Я хотел бы улучшить / расширить возможности индексирования, но не могу понять, как это сделать.

Я знаю, что в типичном фиде серверов Nuget все файлы.NUPKG находятся в корне пути пакета, указанного в конфигурации. Короче говоря, у нас есть требование к структуре папок в этом фиде пакетов, так как различные группы в организации будут использовать SVN для фиксации данных, которые заканчиваются здесь. Чтобы легко управлять этим, нам нужна более сложная структура папок.

Однако я обнаружил, что файлы.NUPKG в корне пути пакета или в одной папке индексируются и доступны через канал. Когда вы углубитесь в две папки, файлы NUPKG не будут проиндексированы и не будут доступны через ленту новостей. Есть ли относительно простой способ, которым я могу это изменить? Это где-то указан параметр? Я не могу найти, откуда это ограничение. Любое направление будет выдающимся.

2 ответа

У нас было несколько пользователей, запрашивающих такую ​​функцию для ProGet, но в конечном итоге решили не реализовывать эту функцию из-за проблемы не только работы с дублирующимися пакетами, но и передачи этой проблемы пользователю.

Помните, что действительный пакет NuGet должен иметь имя файла, соответствующее его версии + id (например, MyPackage.1.2.nupkg может быть только MyPackage v1.2). Таким образом, если у вас есть папка A\MyPackage.1.2.nupkg и папка B\MyPackage.1.2.nupkg, что является допустимым? Вы лишаете законной силы оба? И т.п.

Тем не менее, реализовать его тривиально, так что вы можете просто использовать ProGet SDK для создания собственного хранилища пакетов, которое наследует от значения по умолчанию, но также выполняет итерацию подкаталогов.

В качестве примечания: если вы серьезно относитесь к ведению частного репозитория, вы действительно должны получить что-то иное, чем NuGet.Server. Есть несколько доступных, которые могут управлять пакетами шоколада.

Симлинки - ваш лучший выбор. Вы просто захотите символически связать эти файлы на регулярной основе с запланированной задачей.

Я должен подтвердить ответ Карла об использовании чего-то лучшего, чем NuGet.Server. В зависимости от вашего потенциала роста, он может быстро начать работать после того, как у вас в хранилище будет более 100 пакетов. Примечание: я не проверял это сам с 2012 года, возможно, теперь он лучше поддерживает несколько пакетов.

Другие вопросы по тегам