Używam prywatnego serwera Nuget na serwerze IIS. Tworzę pakiety i przesyłam je wszystkie za pośrednictwem komendy za pomocą nuget.exe (Później muszę umieścić to na serwerze kompilacji, stąd linia poleceń). Jednak jest jeden problem, w którym utknąłem.Zależności Nuget nie są instalowane
Próbuję zadeklarować zależności. Generuję plik Nuspec w folderze, w którym znajduje się plik .csproj. Potem ręcznie edytować plik nuspec dodać to pod znacznikiem metadanych:
<metadata>
<dependencies>
<group targetFramework=".NETFramework4.5">
<dependency id="DemoProject" version="2.0.0.0" />
</group>
</dependencies>
</metadata>
DemoProject, wersja 2.0.0.0 jest obecny na Nuget Server. Projekt, do którego tworzę pakiet, MyProj.csproj nie ma odniesienia do DemoProject dodanego do niego przez Visual Studio. To właśnie w czasie pakowania chcę utworzyć zależność. Brzmi to dziwnie, ale jest potrzebne do wstępnej weryfikacji.
Potem uruchom polecenie Opakowanie:
"C: \ Nuget \ NuGet.exe" pakować MyProj.csproj -IncludeReferencedProjects prop Configuration = Release
Potem wciśnij go do serwera Nuget użyciu wiersza poleceń. Kiedy wykonuję instalację za pomocą wiersza poleceń, tylko pakiet MyProj jest obecny w miejscu instalacji.
Gdy korzystam z Eksploratora pakietów Nuget i tworzę pakiet, mogę użyć Edytora zależności pakietu, aby określić zależność. Prosi o adres URL mojego lokalnego serwera Nuget, a następnie dodaje zależność. A kiedy zainstaluję ten pakiet, działa !!
Wydaje się, że nie ma różnicy w wygenerowanym pliku nuspec w obu przypadkach. Oczywiście menedżer pakietów Nuget robi coś, czego mi brakuje.
Jakieś wskazówki?
Więcej szczegółów: Kiedy utworzę folder lib w konsoli zarządzania pakietami i ręcznie wstawię moją bibliotekę dll, lib-> net45-> MyProj.dll, wtedy po zainstalowaniu tak utworzonego pakietu również "nie" zainstaluję zależności . Znowu wracam do czytania dokumentacji.