Udostępnij za pośrednictwem


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.

  1. Utwórz pustą aplikację internetową ASP.NET w Visual Studio i dodaj NuGet. Pakiet serwera do niego.
  2. Packages Skonfiguruj folder w aplikacji i dodaj pakiety.
  3. 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

  1. W Visual Studio wybierz pozycję Plik > Nowy > Project, wyszukaj ciąg "ASP.NET aplikacja internetowa (.NET Framework)", wybierz odpowiedni szablon dla języka C#.

    Select the .NET Framework web project template

  2. Ustaw wartość ".NET Framework 4.6".

    Setting the target framework for a new project

  3. 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.

    Select the empty web project

  4. Kliknij prawym przyciskiem myszy projekt, wybierz pozycję Zarządzaj pakietami NuGet.

  5. 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.

    Installing the NuGet.Server package

  6. Instalowanie NuGet. Serwer konwertuje pustą aplikację internetową na źródło pakietu. Instaluje ona różne inne pakiety, tworzy Packages folder w aplikacji i modyfikuje web.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 plik web.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.

  7. 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.

    Default home page for an application with NuGet.Server

  8. 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.

  9. Po przetestowaniu wdrożenia lokalnego w razie potrzeby wdróż aplikację w innej lokacji wewnętrznej lub zewnętrznej.

  10. Po wdrożeniu w http://<domain>programie adres URL używany dla źródła pakietu to http://<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ść requireApiKeyfalse. 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.csdomyś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 ~/Packagesfolderem .

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:

Copying packages to the Packages folder in the project

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.