Как правильно создавать NuGet-пакеты в Solution с большим количеством проектов?
Добрый день!
Подскажите, пожалуйста, как правильно создавать NuGet-пакеты в большом Solution'e, например:
-- MySolution --
Project1
Project2 (References на Project1)
Project3 (References на Project2 (и соответственно на Project1))
Project 4 (References на Project1, Project2, Project3)
...
ProjectN (References на ProjectN-1...)
Т.е проекты зависят от других проектов.
Правильно ли будет удалить все References во всех проектах, и начать заливать в NuGet проекты рекурсивно, начиная с проекта, который ни от чего не зависит, а потом в зависимые проекты подключать его через NuGet и их также заливать в NuGet? Получается "рекурсивное залитие" в NuGet.
Или есть какой-то другой, более правильный способ?
А вы предполагаете использовать project2, project3 недависимо от project1? Если да, то собирать их отдельно в виде пакетов, потом подключать. Если нет, то может вам сначала собрать всё в одну либу с помощью ilmerge, а потом ее упаковать в .nupkg. Например, consul так собирается. https://github.com/PlayFab/consuldotnet/blob/maste...
Да, Project2, Project3,... ProjectN - могут и чаще всего именно так, использоваться независимо друг от друга.
Если да, то собирать их отдельно в виде пакетов, потом подключать
Например Project3, зависит от Project1 и Project2.
Для этого чтобы через NuGet при установке Project3 подтянулись Project1 и Project2 нужно при формировании NuGet пакета для Project3 удалить из Solution References Project1 и Project2, а затем скачать их через NuGet и только потом формировать пакет для Project3? В противном случае ведь dependency ссылки на NuGet пакеты Project1 и Project2 не будут учтены?
Iron Bug, В итоге в PostBuildEvent добавил вызов nuget pack ... с параметром "-IncludeReferencedProjects", тогда все подключенные проекты из этого Solution'a автоматом добавляются в nuspec для Project3, при этом их не не пришлось подключать через NuGet. (Используется NuGet v3)