В настоящее время я пытаюсь опубликовать множество пакетов nuget для всех проектов в этом решении. Проекты настраиваются в виде простого дерева, где Myre является базовым проектом, и все, что от него зависит:
Myre <- Myre.Debugging <- Myre.Debugging.UI <- Myre.UI
Myre <- Myre.UI
Myre <- Myre.Entities <- Myre.Graphics
Я пытаюсь упаковать каждый отдельный проект как пакет nuget с правильными зависимостями от других пакетов подпроекта Myre по мере необходимости.
Моим первым шагом было создание пакета для Myre (nuspec и bat-файл процесса). Кажется, это работает нормально, в галерее показано, что Myre имеет зависимость ninject (другой пакет nuget), и все в порядке.
Проблема возникает, когда я пытался сделать следующий пакет. Myre.Debugging зависит от Myre (с обычной ссылкой на проект) и ничего больше. Используя этот nuspec с пакетом nuget ( многословный) дает:
Attempting to build package from '(x86) Myre.Debugging.csproj'.
Packing files from 'C:\Long_Path\Myre\Myre.Debugging\bin\x86\Release'.
Add file 'C:\Long_Path\Myre\Myre.Debugging\bin\x86\Release\Myre.Debugging.dll' to package as 'lib\net40-Client\Myre.Debugging.dll'
Add file 'C:\Long_Path\Myre\Myre\bin\x86\Release\Myre.dll' to package as 'lib\net40-Client\Myre.dll'
Add file 'C:\Long_Path\Myre\Myre\bin\x86\Release\Myre.XML' to package as 'lib\net40-Client\Myre.XML'
Found packages.config. Using packages listed as dependencies
Id: Myre.Debugging
Version: 1.0.0.2
Authors: Microsoft
Description: Description
Dependencies: Ninject (= 3.0.1.10)
Added file 'lib\net40-Client\Myre.Debugging.dll'.
Added file 'lib\net40-Client\Myre.dll'.
Added file 'lib\net40-Client\Myre.XML'.
Successfully created package 'C:\Long_Path\Myre\Myre.Debugging\Myre.Debugging.1.0.0.2.nupkg'.
Как вы можете видеть, он берет файл packages.config (предположительно из Myre, поскольку нет ни одного здесь), от которого затем определяется зависимость Ninject. Если бы я хотел, чтобы Myre.Debugging и Myre были единым пакетом, это было бы хорошо. Однако это не то, что я хочу, я хочу, чтобы Myre.Debugging определял зависимость от пакета Myre.
Как я могу настроить nuget для использования Myre в качестве ссылки на пакет, а не просто для копирования сборок Myre в пакет Myre.Debugging?
Изменить :: Я пытался не использовать -IncludeReferencedProjects и указывал:
<dependencies>
<dependency id="Myre" version="1.0.0.1" />
</dependencies>
Но по какой-то причине это просто создает пакет без каких-либо зависимостей! Даже если указание зависимостей вручную, как эта, действительно сработало, это вряд ли идеально.