Включая сборки проектов, на которые ссылаются, используя цели пакета MSBuild (dotnet pack
фактически просто псевдоним для dotnet msbuld -t:pack
) не поддерживается . nuget.exe pack
имеет аргумент IncludeReferencedProjects
, который делает то, что вы хотите, но не работает правильно для проектов, использующих проекты PackageReference
или SDK (которые всегда PackageReference
).
Один из возможных обходных путей - это создать скрипт сборки, который сначала соберет все ваши проекты, затем скопирует все ваши сборки в макет пакета nuget и использует nuget.exe pack
для упаковки этого макета каталога.
Другой обходной путь - иметь nuspec
с набором <file src="..." target="lib\<tfm>\">
элементов, который говорит NuGet упаковать все сборки из их скомпилированных расположений.
Другой обходной путь - использовать расширяемость MSBuild, чтобы сообщить объектам NuGet MSBuils о сборках, которые вы хотите упаковать после сборки, но перед сборкой. В приведенной выше ветке есть несколько комментариев, в которых приведены примеры того, как это можно сделать.