Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
NuGet.Server is een pakket dat wordt geleverd door .NET Foundation waarmee een ASP.NET-toepassing wordt gemaakt die een pakketfeed kan hosten op elke server waarop IIS wordt uitgevoerd. Gewoon gezegd, NuGet.Server maakt een map op de server beschikbaar via HTTP(S) (met name OData). Het is eenvoudig in te stellen en is het beste voor eenvoudige scenario's.
- Maak een lege ASP.NET-webtoepassing in Visual Studio en voeg het NuGet.Server-pakket eraan toe.
- Als u Visual Studio 2022 gebruikt, moet u de ontwikkelhulpprogramma's van .NET Framework toevoegen. U hebt dit nodig zodat u een nieuw ASP.NET Web Application-project (.NET Framework) kunt maken.
- Configureer de
Packagesmap in de toepassing en voeg pakketten toe. - Implementeer de toepassing op een geschikte server.
In de volgende secties wordt dit proces uitgebreid beschreven met behulp van C#.
Als u meer vragen hebt over NuGet.Server, maakt u een probleem op https://github.com/nuget/NuGetGallery/issues.
Een ASP.NET-webtoepassing maken en implementeren met NuGet.Server
Selecteer in Visual Studio Bestand > nieuw > project, zoek naar 'ASP.NET Web Application (.NET Framework)', selecteer de overeenkomende sjabloon voor C#.
Stel Framework in op .NET Framework 4.6.
Geef de toepassing een andere naam dan NuGet.Server, selecteer OK en selecteer in het volgende dialoogvenster de sjabloon Leeg en selecteer vervolgens OK.
Klik met de rechtermuisknop op het project en selecteer NuGet-pakketten beheren.
Selecteer in de gebruikersinterface van Package Manager het tabblad Bladeren en zoek en installeer vervolgens de nieuwste versie van het NuGet.Server-pakket als u zich richt op .NET Framework 4.6. (U kunt het ook installeren vanuit de Package Manager-console met
Install-Package NuGet.Server.) Accepteer de licentievoorwaarden als u hierom wordt gevraagd.
Als u NuGet.Server installeert, wordt de lege webtoepassing geconverteerd naar een pakketbron. Het installeert diverse andere pakketten, maakt een
Packagesmap in de toepassing en wijzigtweb.configom aanvullende instellingen op te nemen (zie de opmerkingen in dat bestand voor meer informatie).Belangrijk
Controleer zorgvuldig
web.confignadat het NuGet.Server-pakket de wijzigingen in dat bestand heeft voltooid. NuGet.Server overschrijft mogelijk geen bestaande elementen, maar maakt in plaats daarvan dubbele elementen. Deze duplicaten veroorzaken een interne serverfout wanneer u het project later probeert uit te voeren. Als uwweb.configbijvoorbeeld inhoud bevat<compilation debug="true" targetFramework="4.5.2" />voordat u NuGet.Server installeert, wordt het pakket niet overschreven, maar wordt er een tweede<compilation debug="true" targetFramework="4.6" />ingevoegd. Verwijder in dat geval het element met de oudere frameworkversie.Voer de site lokaal uit in Visual Studio (met Debug > Start Without Debugging of Ctrl+F5). De startpagina bevat de URL's van de pakketfeed, zoals hieronder wordt weergegeven. Als u fouten ziet, inspecteert u uw
web.configzorgvuldig op dubbele elementen, zoals eerder aangegeven.
De eerste keer dat u de toepassing uitvoert, herstructureert NuGet.Server de map zodat deze
Packageseen map voor elk pakket bevat. Dit komt overeen met de lokale opslagindeling die is geïntroduceerd met NuGet 3.3 om de prestaties te verbeteren. Als u meer pakketten toevoegt, blijft u deze structuur volgen.Nadat u uw lokale implementatie hebt getest, implementeert u de toepassing indien nodig op een andere interne of externe site.
Zodra deze is geïmplementeerd naar
http://<domain>, is de URL die u gebruikt voor de pakketbronhttp://<domain>/nuget.
Pakketten extern toevoegen aan de feed
Zodra een NuGet.Server-site wordt uitgevoerd, kunt u pakketten toevoegen met behulp van nuget-push , mits u een API-sleutelwaarde hebt ingesteld in web.config.
Na de installatie van het NuGet.Server-pakket bevat web.config een lege appSetting/apiKey waarde.
<appSettings>
<add key="apiKey" value="" />
</appSettings>
Wanneer apiKey wordt weggelaten of leeg is, wordt het pushen van pakketten naar de feed uitgeschakeld.
Als u deze mogelijkheid wilt inschakelen, stelt u de apiKey waarde in op een waarde (idealiter een sterk wachtwoord) en voegt u een sleutel toe die wordt aangeroepen appSettings/requireApiKey met de waarde van 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>
Als uw server al is beveiligd of als u anders geen API-sleutel nodig hebt (bijvoorbeeld wanneer u een privéserver op een lokaal teamnetwerk gebruikt), kunt u instellen requireApiKey op false. Alle gebruikers met toegang tot de server kunnen vervolgens pakketten pushen.
Vanaf NuGet.Server 3.0.0 is de URL voor pushpakketten gewijzigd in http://<domain>/nuget. Vóór de release van 3.0.0 was de push-URL http://<domain>/api/v2/package.
Met NuGet 3.2.1 en hoger wordt deze verouderde URL /api/v2/package naast /nuget standaard ingeschakeld via de enableLegacyPushRoute: true optie in uw opstartconfiguratie (NuGetODataConfig.cs standaard). Houd er rekening mee dat deze functie niet werkt wanneer meerdere feeds in hetzelfde project worden gehost.
Pakketten uit de feed verwijderen
Met NuGet.Server verwijdert de nuget-opdracht verwijderen een pakket uit de opslagplaats, mits u de API-sleutel met de opmerking opneemt.
Als u het gedrag wilt wijzigen om het pakket uit de lijst te verwijderen (zodat het beschikbaar blijft voor pakketherstel), wijzigt u de enableDelisting sleutel in web.config naar ja.
De Pakketten-map configureren
Met NuGet.Server 1.5 en hoger kunt u de pakketmap aanpassen met behulp van de appSettings/packagesPath waarde in web.config:
<appSettings>
<!-- Set the value here to specify your custom packages folder. -->
<add key="packagesPath" value="C:\MyPackages" />
</appSettings>
packagesPath kan een absoluut of virtueel pad zijn.
Als packagesPath is weggelaten of leeg is gelaten, is de pakketmap de standaard ~/Packages.
Pakketten beschikbaar maken wanneer u de web-app publiceert
Als u pakketten beschikbaar wilt maken in de feed wanneer u de toepassing publiceert op een server, voegt u elke .nupkg bestanden toe aan de Packages map in Visual Studio en stelt u vervolgens de buildactie van elk bestand in op inhoud en kopieert u naar de uitvoermap om altijd te kopiëren:
Opmerkingen bij de release
Releaseopmerkingen voor NuGet.Server zijn beschikbaar op de GitHub-releasepagina. Dit omvat details over oplossingen voor fouten en nieuwe functies die worden toegevoegd.
Ondersteuning voor NuGet.Server
Voor aanvullende hulp bij het gebruik van NuGet.Server maakt u een probleem op https://github.com/nuget/NuGetGallery/issues.