Chcę uruchomić lokalne / wewnętrzne repozytorium NuGet . Myślę, że wymyśliłem, jak „ponownie wykorzystać” istniejące pakiety NuGet, włączając je do fałszywego projektu przy użyciu NuGet i skanując plik pakietu w celu pobrania moich .nupkg
plików zapisanych lokalnie w pamięci podręcznej , ale ...
Jak utworzyć pakiet NuGet ( .nupkg
) z projektu, automatycznie uwzględniając wszystkie dll
zależności, a nie tylko te, które zostały pobrane za pośrednictwem NuGet?
Konkretnie:
- Utwórz rozwiązanie
- Dodaj nowy projekt
- Dodaj odniesienia do różnych
.dll
plików / innych projektów <- to jest brakująca część - Dodaj pakiety NuGet za pośrednictwem Menedżera pakietów / cmdline / cokolwiek
- coś automatycznie tworzy plik
.nupkg
Z tego, co odkryłem, powinieneś robić takie rzeczy
- ręcznie edytuj
.csproj
plik, aby dodać<BuildPackage>true</BuildPackage>
do niego zależności - ręcznie utwórz
.nuspec
plik i ręcznie wymień swoje zależności ( podobne? ) - ręcznie uruchomić
nuget pack
na.nuspec
pliku
Ale wszystko jest ręczne, co jest głupie. Nawet rozwiązania półautomatyczne są nadal niewygodne lub w połowie ręczne:
- Twórz
.nuspec
szablony - nie wydaje się zawierać zależności, tylko metadane nuget za pośrednictwem zdarzenia kompilacji (krok # 5), który należy dodać ręcznie do każdego projektu i ma swoje własne dziwactwa :
"$(SolutionDir).nuget\NuGet.exe" pack "$(ProjectPath)" -Properties Configuration=Release move /Y *.nupkg "$(TargetDir)"
Zadowolę się czymś, co automatycznie tworzy .nuspec
manifest na podstawie odwołań do projektu. Następnie teoretycznie + zdarzenie kompilacji nuget można umieścić w pakiecie build-project / nuget, co naprawdę chcę zobaczyć.