Как организованы репозитории NuGet? - PullRequest
0 голосов
/ 02 декабря 2018

Я решил перенести библиотеку классов .NET Standard в существующее локальное хранилище NuGet на своем рабочем месте.

Я сделал это, автоматически отправив пакет NuGet после сборки в Visual Studio:

nuget push [PACKAGE_FILENAME] -Source [REPO_ON_THE_NETWORK]

До моего запуска в репо было 3 уже существующих пакета для других проектов.После моего нажатия, единственный видимый проект - через пользовательский интерфейс диспетчера пакетов NuGet в Visual Studio - был только что выдвинутым.Я могу использовать свой проект из репозитория NuGet без проблем.

Я посмотрел в самой папке в сети, и вот что я увидел:

[ ] Repo
 |
 |_ [ ] Proj1
 |   |
 |   |_ [ ] v1.0.0
 |   |   |
 |   |   |_ [ ] lib
 |   |   |   |
 |   |   |   |_ [ ] net20
 |   |   |   |   |
 |   |   |   |   |_ .dll
 |   |   |   |   |_ .pdb
 |   |   |   |
 |   |   |   |_ [ ] net46
 |   |   |       |
 |   |   |       |_ .dll
 |   |   |       |_ .pdb
 |   |   |
 |   |   |_ .nupkg
 |   |   |_ .nupkg.sha512
 |   |   |_ .nuspec
 |   |
 |   |_ [ ] v1.0.1
 |       |
 |       |_ .nupkg
 |       |_ .nupkg.sha512
 |       |_ .nuspec
 |
 |_ [ ] MyRecentlyPushedProj
   |
   |_ .nupkg

У меня три вопроса:

  • Почему папка организована по-разному?Обратите внимание, что в одной папке есть подпапка с реальными двоичными файлами проекта, а в других нет.Также обратите внимание, что в моем недавно добавленном проекте не хватает всего, кроме файла пакета NuGet.
  • Когда мы вручную удаляем недавно перемещенный проект из репозитория, тогда старые проекты вновь появляются в пользовательском интерфейсе диспетчера пакетов NuGet.Неужели наличие по-разному организованных папок мешает возможности NuGet сканировать репо?Изменился ли способ организации проектов NuGet с течением времени (с более новыми версиями)?
  • Как я могу успешно использовать недавно переданный проект без папки, содержащей какие-либо двоичные файлы?

1 Ответ

0 голосов
/ 02 декабря 2018

Из дерева иерархии, которое вы нарисовали, я вижу некоторые отличия:

  1. В вашем пакете отсутствует версия.
  2. В вашем пакете нет папки lib.

Теперь существует два способа публикации пакета NuGet с NuGet CLI: push и add .Основное отличие состоит в том, что add предназначен для источника пакета, отличного от HTTP (как указано в MSDN), и что он публикует пакет иерархически, в то время как push не всегда (и это обычно зависит от того, каким образом канал былинициализировано).

Я рекомендую вам проверить документацию, которую я добавил, и на основе этого решить, использовать ли одну команду или другую.Из того, что я могу собрать, вы должны использовать add.

Надеюсь, это поможет.

...