Sdílet prostřednictvím


NuGet.Server

NuGet. Server je balíček poskytovaný službou .NET Foundation, která vytvoří ASP.NET aplikaci, která může hostovat informační kanál balíčku na jakémkoli serveru, na kterém běží služba IIS. Prostě řekl, NuGet. Server zpřístupní složku na serveru prostřednictvím HTTP(S) (konkrétně OData). Je snadné nastavit a je nejvhodnější pro jednoduché scénáře.

  1. Vytvořte prázdnou webovou aplikaci ASP.NET v Visual Studio a přidejte NuGet. Balíček serveru do něj.
  2. Packages Nakonfigurujte složku v aplikaci a přidejte balíčky.
  3. Nasaďte aplikaci na vhodný server.

Následující části podrobně provedou tento proces pomocí jazyka C#.

Pokud máte další dotazy k NuGet. Server, vytvořte problém s https://github.com/nuget/NuGetGallery/issues.

Vytvořte a nasaďte webovou aplikaci ASP.NET pomocí NuGet. Server

  1. V Visual Studio vyberte Soubor > nový > Project, vyhledejte "ASP.NET Web Application (.NET Framework)" a vyberte odpovídající šablonu pro C#.

    Select the .NET Framework web project template

  2. Nastavte architekturu na .NET Framework 4.6.

    Setting the target framework for a new project

  3. Dejte aplikaci jiný název než NuGet. Server, vyberte OK a v dalším dialogovém okně vyberte prázdnou šablonu a pak vyberte OK.

    Select the empty web project

  4. Klikněte pravým tlačítkem na projekt a vyberte Spravovat NuGet Balíčky.

  5. V uživatelském rozhraní Správce balíčků vyberte kartu Procházet a vyhledejte a nainstalujte nejnovější verzi NuGet. Pokud cílíte na balíček serveru .NET Framework 4.6. (Můžete ho také nainstalovat z konzoly Správce balíčků pomocí Install-Package NuGet.Server.) Pokud se zobrazí výzva, přijměte licenční podmínky.

    Installing the NuGet.Server package

  6. Instalace NuGet Server převede prázdnou webovou aplikaci na zdroj balíčku. Nainstaluje řadu dalších balíčků, vytvoří Packages složku v aplikaci a upraví web.config tak, aby zahrnovala další nastavení (podrobnosti najdete v komentářích v tomto souboru).

    Důležité

    Pečlivě zkontrolujte web.config po NuGet. Balíček serveru dokončil změny daného souboru. NuGet. Server nemusí přepsat existující prvky, ale místo toho vytvořit duplicitní prvky. Tyto duplicity způsobí vnitřní chybu serveru při pozdějším pokusu o spuštění projektu. Pokud například obsahuje web.config před <compilation debug="true" targetFramework="4.5.2" /> instalací NuGet. Server, balíček ho nepřepíše, ale vloží sekundu <compilation debug="true" targetFramework="4.6" />. V takovém případě odstraňte prvek se starší verzí architektury.

  7. Spusťte web místně v Visual Studio (pomocí ladění > spustit bez ladění nebo Ctrl+F5). Domovská stránka obsahuje adresy URL informačního kanálu balíčku, jak je znázorněno níže. Pokud se zobrazí chyby, pečlivě zkontrolujte web.config duplicitní prvky, jak je uvedeno výše.

    Default home page for an application with NuGet.Server

  8. Při prvním spuštění aplikace NuGet. Server přestrukturuje Packages složku tak, aby obsahovala složku pro každý balíček. To odpovídá rozložení místního úložiště zavedenému s NuGet 3.3 za účelem zvýšení výkonu. Při přidávání dalších balíčků pokračujte touto strukturou.

  9. Po otestování místního nasazení nasaďte aplikaci na jakoukoli jinou interní nebo externí lokalitu podle potřeby.

  10. Po nasazení na http://<domain>adresu URL, kterou používáte pro zdroj balíčku, bude http://<domain>/nuget.

Externí přidávání balíčků do informačního kanálu

Jednou NuGet. Serverová lokalita je spuštěná, můžete přidat balíčky pomocí nabízených oznámení nuget za předpokladu, že jste nastavili hodnotu klíče rozhraní API .web.config

Po instalaci NuGet. Balíček serveru obsahuje web.config prázdnou appSetting/apiKey hodnotu:

<appSettings>
    <add key="apiKey" value="" />
</appSettings>

Pokud apiKey je vynecháno nebo prázdné, je nabízení balíčků do informačního kanálu zakázané.

Pokud chcete tuto funkci povolit, nastavte apiKey hodnotu (ideálně silné heslo) a přidejte klíč s appSettings/requireApiKey hodnotou :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>

Pokud je váš server již zabezpečený nebo nevyžadujete jinak klíč rozhraní API (například při použití privátního serveru v místní týmové síti), můžete nastavit requireApiKey na falsehodnotu . Všichni uživatelé s přístupem k serveru pak můžou odesílat balíčky.

Počínaje NuGet. Server 3.0.0, adresa URL pro nabízení balíčků byla změněna na http://<domain>/nuget. Před vydáním verze 3.0.0 byla http://<domain>/api/v2/packageadresa URL nabízená oznámení .

S NuGet 3.2.1 a novějším je tato starší adresa URL /api/v2/package povolená kromě /nuget výchozí enableLegacyPushRoute: true možnosti v konfiguraci spuštění (NuGetODataConfig.csve výchozím nastavení). Všimněte si, že tato funkce nefunguje, když je ve stejném projektu hostováno více informačních kanálů.

Odebírání balíčků z informačního kanálu

S NuGet. Příkaz nuget delete odebere balíček z úložiště za předpokladu, že do komentáře zahrnete klíč rozhraní API.

Pokud chcete změnit chování, aby se balíček odpojme (ponecháte ho k dispozici pro obnovení balíčku), změňte enableDelisting klíč na web.config true.

Konfigurace složky Packages

S NuGet.Server verzí 1.5 a novější můžete složku balíčku přizpůsobit pomocí appSettings/packagesPath hodnoty v web.config:

<appSettings>
    <!-- Set the value here to specify your custom packages folder. -->
    <add key="packagesPath" value="C:\MyPackages" />
</appSettings>

packagesPath může být absolutní nebo virtuální cesta.

Pokud packagesPath je vynecháno nebo ponecháno prázdné, složka balíčků je výchozí ~/Packages.

Zpřístupnění balíčků při publikování webové aplikace

Pokud chcete, aby balíčky byly dostupné v informačním kanálu při publikování aplikace na server, přidejte všechny .nupkg soubory do Packages složky v Visual Studio a pak nastavte akci sestavení každého z nich na obsah a kopírovat do výstupního adresáře tak, aby se vždy zkopírovaly:

Copying packages to the Packages folder in the project

Poznámky k verzi

Poznámky k verzi pro NuGet Server je k dispozici na stránce verze GitHub. To zahrnuje podrobnosti o opravách chyb a nových funkcích, které se přidávají.

NuGet. Podpora serveru

Další pomoc s používáním NuGet Server, vytvořte problém s https://github.com/nuget/NuGetGallery/issues.