Я хочу запустить локальный/внутренний репозиторий NuGet. Я думаю, что я понял, как "повторно использовать" существующие пакеты NuGet, включив их в фиктивный проект с использованием NuGet и сканируя файл пакета на захватить мой локально- кешированные .nupkg файлы, но...
Как создать пакет nuget (.nupkg) из проекта, автоматически включающий зависимости all dll, а не только те, которые были захвачены через NuGet?
В частности:
- Создать решение
- Добавить новый проект
- Добавить ссылки на различные
.dllфайлы/другие проекты < - это недостающая часть - Добавить пакеты NuGet через диспетчер пакетов /cmdline/whatever
- что-то автоматически создает
.nupkg
Из того, что я нашел, вы должны делать что-то вроде
- вручную отредактируйте файл
.csproj, чтобы добавить<BuildPackage>true</BuildPackage>, чтобы включить зависимости - вручную создайте файл
.nuspecи вручную укажите ваши зависимости (похожее?) - вручную запустите
nuget packв вашем.nuspecфайле
Но все ручное, что глупо. Даже полуавтоматические решения по-прежнему неловкие или наполовину ручные:
- Создать
.nuspectemplates - похоже, не включает зависимости, а только метаданные -
пакет nuget через build-event (шаг № 5), который нужно добавить вручную для каждого проекта, и он имеет свои собственные особенности:
"$(SolutionDir).nuget\NuGet.exe" pack "$(ProjectPath)" -Properties Configuration=Release move /Y *.nupkg "$(TargetDir)"
Я соглашусь на то, что автоматически создает манифест .nuspec из ссылок на проект. Тогда теоретически, что + build-событие nuget может быть свернуто в пакет build-project/nuget, что я действительно хочу видеть.