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.
- Vytvořte prázdnou webovou aplikaci ASP.NET v Visual Studio a přidejte NuGet. Balíček serveru do něj.
Packages
Nakonfigurujte složku v aplikaci a přidejte balíčky.- 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.
V Visual Studio vyberte Soubor > nový > Project, vyhledejte "ASP.NET Web Application (.NET Framework)" a vyberte odpovídající šablonu pro C#.
Nastavte architekturu na .NET Framework 4.6.
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.
Klikněte pravým tlačítkem na projekt a vyberte Spravovat NuGet Balíčky.
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.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 obsahujeweb.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.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.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.Po otestování místního nasazení nasaďte aplikaci na jakoukoli jinou interní nebo externí lokalitu podle potřeby.
Po nasazení na
http://<domain>
adresu URL, kterou používáte pro zdroj balíčku, budehttp://<domain>/nuget
.
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 false
hodnotu . 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/package
adresa 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.cs
ve 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ů.
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.
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
.
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:
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í.
Další pomoc s používáním NuGet Server, vytvořte problém s https://github.com/nuget/NuGetGallery/issues.