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