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