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