NuGet.Server
NuGet. Serwer to pakiet dostarczany przez program .NET Foundation, który tworzy aplikację ASP.NET, która może hostować źródło danych pakietów na dowolnym serwerze z uruchomionymi usługami IIS. Po prostu powiedział, NuGet. Serwer udostępnia folder na serwerze za pośrednictwem protokołu HTTP (w szczególności OData). Łatwo jest skonfigurować i jest najlepszym rozwiązaniem w przypadku prostych scenariuszy.
- Utwórz pustą aplikację internetową ASP.NET w Visual Studio i dodaj NuGet. Pakiet serwera do niego.
Packages
Skonfiguruj folder w aplikacji i dodaj pakiety.- Wdróż aplikację na odpowiednim serwerze.
W poniższych sekcjach szczegółowo przedstawiono ten proces przy użyciu języka C#.
Jeśli masz dodatkowe pytania dotyczące NuGet. Serwer, utwórz problem w systemie https://github.com/nuget/NuGetGallery/issues.
Utwórz i wdróż aplikację internetową ASP.NET przy użyciu NuGet. Serwera
W Visual Studio wybierz pozycję Plik > Nowy > Project, wyszukaj ciąg "ASP.NET aplikacja internetowa (.NET Framework)", wybierz odpowiedni szablon dla języka C#.
Ustaw wartość ".NET Framework 4.6".
Nadaj aplikacji odpowiednią nazwę inną niż NuGet. Serwer, wybierz przycisk OK, a następnie w następnym oknie dialogowym wybierz pozycję Pusty szablon, a następnie wybierz przycisk OK.
Kliknij prawym przyciskiem myszy projekt, wybierz pozycję Zarządzaj pakietami NuGet.
W interfejsie użytkownika Menedżer pakietów wybierz kartę Przeglądaj, a następnie wyszukaj i zainstaluj najnowszą wersję NuGet. Pakiet serwera, jeśli jest przeznaczony dla .NET Framework 4.6. (Można go również zainstalować z poziomu konsoli Menedżer pakietów za pomocą polecenia
Install-Package NuGet.Server
.) Zaakceptuj postanowienia licencyjne, jeśli zostanie wyświetlony monit.Instalowanie NuGet. Serwer konwertuje pustą aplikację internetową na źródło pakietu. Instaluje ona różne inne pakiety, tworzy
Packages
folder w aplikacji i modyfikujeweb.config
w celu uwzględnienia dodatkowych ustawień (zobacz komentarze w tym pliku, aby uzyskać szczegółowe informacje).Ważne
Dokładnie sprawdź
web.config
po NuGet. Pakiet serwera zakończył modyfikacje tego pliku. NuGet. Serwer może nie zastąpić istniejących elementów, ale zamiast tego utworzyć zduplikowane elementy. Te duplikaty spowodują błąd wewnętrzny serwera podczas późniejszej próby uruchomienia projektu. Jeśli na przykład plikweb.config
zawiera<compilation debug="true" targetFramework="4.5.2" />
przed zainstalowaniem NuGet. Serwer, pakiet nie zastępuje go, ale wstawia drugi<compilation debug="true" targetFramework="4.6" />
. W takim przypadku usuń element ze starszą wersją platformy.Uruchom witrynę lokalnie w Visual Studio (przy użyciu polecenia Rozpocznij debugowanie bez debugowania > lub Ctrl+F5). Strona główna udostępnia adresy URL kanału informacyjnego pakietu, jak pokazano poniżej. Jeśli widzisz błędy, dokładnie sprawdź
web.config
pod kątem zduplikowanych elementów, jak wspomniano wcześniej.Przy pierwszym uruchomieniu aplikacji NuGet. Serwer zmienia strukturę folderu,
Packages
aby zawierał folder dla każdego pakietu. Jest to zgodne z lokalnym układem magazynu wprowadzonym z NuGet 3.3 w celu zwiększenia wydajności. Podczas dodawania kolejnych pakietów przejdź do tej struktury.Po przetestowaniu wdrożenia lokalnego w razie potrzeby wdróż aplikację w innej lokacji wewnętrznej lub zewnętrznej.
Po wdrożeniu w
http://<domain>
programie adres URL używany dla źródła pakietu tohttp://<domain>/nuget
.
Zewnętrzne dodawanie pakietów do kanału informacyjnego
Raz NuGet. Witryna serwera jest uruchomiona. Można dodawać pakiety przy użyciu wypychania nuget podanego, że ustawiono wartość klucza interfejsu API w elemecie web.config
.
Po zainstalowaniu NuGet. Pakiet web.config
serwera zawiera pustą appSetting/apiKey
wartość:
<appSettings>
<add key="apiKey" value="" />
</appSettings>
Gdy apiKey
zostanie pominięty lub pusty, wypychanie pakietów do kanału informacyjnego jest wyłączone.
Aby włączyć tę funkcję, ustaw apiKey
wartość na wartość (najlepiej silne hasło) i dodaj klucz o nazwie appSettings/requireApiKey
z wartością true
:
<appSettings>
<!-- Sets whether an API Key is required to push/delete packages -->
<add key="requireApiKey" value="true" />
<!-- Set a shared password (for all users) to push/delete packages -->
<add key="apiKey" value="" />
</appSettings>
Jeśli serwer jest już zabezpieczony lub nie wymagasz klucza interfejsu API (na przykład w przypadku korzystania z serwera prywatnego w lokalnej sieci zespołowej), możesz ustawić wartość requireApiKey
false
. Wszyscy użytkownicy z dostępem do serwera mogą wypychać pakiety.
Począwszy od NuGet. Serwer 3.0.0, adres URL wypychania pakietów został zmieniony na http://<domain>/nuget
. Przed wydaniem wersji 3.0.0 adres URL wypychania to http://<domain>/api/v2/package
.
Dzięki NuGet 3.2.1 i nowszym ten starszy adres URL /api/v2/package
jest domyślnie włączony /nuget
za pośrednictwem enableLegacyPushRoute: true
opcji w konfiguracji uruchamiania (NuGetODataConfig.cs
domyślnie). Należy pamiętać, że ta funkcja nie działa, gdy wiele źródeł danych jest hostowanych w tym samym projekcie.
Usuwanie pakietów ze źródła danych
Z NuGet. Serwer, polecenie usuwania nuget usuwa pakiet z repozytorium podanego, że dołączysz klucz interfejsu API z komentarzem.
Jeśli chcesz zmienić zachowanie, aby usunąć listę pakietu (pozostawiając go dostępne do przywrócenia pakietu), zmień enableDelisting
klucz na web.config
true.
Konfigurowanie folderu Packages
W NuGet.Server
wersji 1.5 lub nowszej można dostosować folder pakietu przy użyciu appSettings/packagesPath
wartości w pliku web.config
:
<appSettings>
<!-- Set the value here to specify your custom packages folder. -->
<add key="packagesPath" value="C:\MyPackages" />
</appSettings>
packagesPath
może być ścieżką bezwzględną lub wirtualną.
Gdy packagesPath
zostanie pominięty lub pozostawiony pusty, folder packages jest domyślnym ~/Packages
folderem .
Udostępnianie pakietów podczas publikowania aplikacji internetowej
Aby udostępnić pakiety w kanale informacyjnym podczas publikowania aplikacji na serwerze, dodaj wszystkie .nupkg
pliki do Packages
folderu w Visual Studio, a następnie ustaw akcję kompilacji każdego z nich na zawartość i skopiuj do katalogu wyjściowegozawsze:
Informacje o wersji
Informacje o wersji dla NuGet. Serwer jest dostępny na stronie wydania GitHub. Obejmuje to szczegółowe informacje o poprawkach błędów i dodawanych nowych funkcjach.
NuGet. Obsługa serwera
Aby uzyskać dodatkową pomoc dotyczącą korzystania z NuGet. Serwer, utwórz problem w systemie https://github.com/nuget/NuGetGallery/issues.