Я хочу запустити локальне / внутрішнє сховище 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, що я справді хочу побачити.
