Zie NuGet.org veelgestelde vragenvoor veelgestelde vragen over NuGet.org, zoals NuGet.org accountvragen.
Algemeen
Wat is vereist om NuGet uit te voeren?
Alle informatie over de gebruikersinterface en opdrachtregelprogramma's is beschikbaar in de Installatiehandleiding.
Ondersteunt NuGet Mono?
Het opdrachtregelprogramma, nuget.exe
, bouwt en wordt doorgaans uitgevoerd onder Windows. NuGet kan worden uitgevoerd op Unix-besturingssystemen met behulp van mono
, maar het wordt niet officieel ondersteund door ondersteuningsbeleid van NuGet.
Mono eigendom heeft overgedragen aan Wijn en wordt niet meer onderhouden door Microsoft.
Hoe kan ik bepalen wat een pakket bevat en of het stabiel en nuttig is voor mijn toepassing?
De primaire bron voor meer informatie over een pakket is de vermeldingspagina op nuget.org (of een andere privéfeed). Elke pakketpagina op nuget.org bevat een beschrijving van het pakket, de versiegeschiedenis en de gebruiksstatistieken. De sectie Info op de pakketpagina bevat ook een koppeling naar de website van het project, waar u meestal veel voorbeelden en andere documentatie vindt om te leren hoe het pakket wordt gebruikt.
Zie Pakketten zoeken en kiezenvoor meer informatie.
NuGet in Visual Studio
Hoe wordt NuGet ondersteund in verschillende Visual Studio-producten?
- Visual Studio in Windows ondersteunt de gebruikersinterface van Package Manager en de Package Manager Console.
- Visual Studio voor Mac heeft ingebouwde NuGet-mogelijkheden zoals beschreven in Inclusief een NuGet-pakket in uw project.
- Visual Studio Code (alle platforms) heeft geen directe NuGet-integratie. Gebruik de NuGet CLI- of de dotnet CLI-.
- Azure DevOps biedt een buildstap voor het herstellen van NuGet-pakketten. U kunt ook privé-NuGet-pakketfeeds hosten op Azure DevOps.
Hoe controleer ik de exacte versie van de NuGet-hulpprogramma's die zijn geïnstalleerd?
Gebruik in Visual Studio de opdracht Help > Over Microsoft Visual Studio en bekijk de versie die wordt weergegeven naast NuGet Package Manager-.
U kunt ook de Package Manager-console (Tools > NuGet Package Manager > Package Manager Console) starten en $host
invoeren om informatie over NuGet inclusief de versie te bekijken.
Welke programmeertalen worden ondersteund door NuGet?
NuGet werkt over het algemeen voor .NET-talen en is ontworpen om .NET-bibliotheken in een project te brengen. Omdat het ook MSBuild- en Visual Studio-automatisering ondersteunt in sommige projecttypen, ondersteunt het ook andere projecten en talen in verschillende mate.
De meest recente versie van NuGet ondersteunt C#, Visual Basic, F#, WiX, C++en Q#.
Welke projectsjablonen worden ondersteund door NuGet?
NuGet biedt volledige ondersteuning voor diverse projectsjablonen, zoals Windows, Web, Cloud, SharePoint, Wix, enzovoort.
Hoe kan ik pakketten bijwerken die deel uitmaken van Visual Studio-sjablonen?
Ga naar het tabblad Updates in de gebruikersinterface van Package Manager en selecteer Allebijwerken of gebruik de Update-Package
opdracht in de Package Manager-console.
Als u de sjabloon zelf wilt bijwerken, moet u de sjabloonopslagplaats handmatig bijwerken. Zie Blog van Azure Decoster over dit onderwerp. Houd er rekening mee dat dit op eigen risico wordt gedaan, omdat handmatige updates de sjabloon kunnen beschadigen als de nieuwste versie van alle afhankelijkheden niet compatibel is met elkaar.
Kan ik NuGet buiten Visual Studio gebruiken?
Ja, NuGet werkt rechtstreeks vanaf de opdrachtregel. Zie de handleiding Installeren en de CLI-verwijzing.
NuGet-opdrachtregel
Hoe krijg ik de nieuwste versie van het NuGet-opdrachtregelprogramma?
Zie de Installatiehandleiding. Gebruik nuget help
om de huidige geïnstalleerde versie van het hulpprogramma te controleren.
Wat is de licentie voor nuget.exe?
U mag nuget.exe herverdelen onder de voorwaarden van de MIT-licentie. U bent verantwoordelijk voor het bijwerken en onderhouden van kopieën van nuget.exe die u kiest om opnieuw te distribueren.
Is het mogelijk om het NuGet-opdrachtregelprogramma uit te breiden?
Ja, het is mogelijk om aangepaste opdrachten toe te voegen aan nuget.exe
, zoals beschreven in Rob Reynolds post beschikbaar via Archive.org.
NuGet Package Manager Console (Visual Studio in Windows)
Hoe krijg ik toegang tot het DTE-object in de Package Manager-console?
Het object op het hoogste niveau in het Visual Studio Automation-objectmodel wordt het DTE-object (Development Tools Environment) genoemd. De console biedt dit via een variabele met de naam $DTE
. Zie Automation-modeloverzicht in de documentatie over Uitbreidbaarheid van Visual Studio voor meer informatie.
Ik probeer de $DTE variabele te casten naar het type DTE2, maar er treedt een fout op: Kan de waarde 'EnvDTE.DTEClass' van het type 'EnvDTE.DTEClass' niet converteren naar 'EnvDTE80.DTE2'. Wat is er aan de hand?
Dit is een bekend probleem met de interactie van PowerShell met een COM-object. Probeer het volgende:
`$dte2 = Get-Interface $dte ([EnvDTE80.DTE2])`
Get-Interface
is een helperfunctie die is toegevoegd door de NuGet PowerShell-host.
Pakketten maken en publiceren
Hoe kan ik mijn pakket in een feed vermelden?
Ik heb meerdere versies van mijn bibliotheek die zijn gericht op verschillende versies van .NET Framework. Hoe bouw ik één pakket dat dit ondersteunt?
Hoe stel ik mijn eigen opslagplaats of feed in?
Zie het overzicht van Hostingpakketten.
Hoe kan ik pakketten bulksgewijs uploaden naar mijn NuGet-feed?
Zie NuGet-pakketten bulksgewijs publiceren (jeffhandly.com).
Werken met pakketten
Is het mogelijk om NuGet-pakketten te installeren zonder internetverbinding?
Ja, zie het blogbericht van Scott Hanselman How to access NuGet when nuget.org is down (or you's on a plane) (hanselman.com).
Hoe installeer ik pakketten op een andere locatie dan de standaardmap met pakketten?
Stel de repositoryPath
-instelling in Nuget.Config
in met behulp van nuget config -set repositoryPath=<path>
.
Hoe vermijd ik het toevoegen van de map NuGet-pakketten aan broncodebeheer?
Stel de disableSourceControlIntegration
in Nuget.Config
in op true
. Deze sleutel werkt op oplossingsniveau en moet daarom worden toegevoegd aan het $(Solutiondir)\.nuget\Nuget.Config
-bestand. Als u pakketherstel vanuit Visual Studio inschakelt, wordt dit bestand automatisch gemaakt.
Hoe schakel ik herstel van pakketten uit?
Waarom krijg ik de foutmelding 'Kan afhankelijkheidsfout niet oplossen' bij het installeren van een lokaal pakket met externe afhankelijkheden?
U moet de Alle bron selecteren bij het installeren van een lokaal pakket in het project. Hiermee worden alle feeds samengevoegd in plaats van slechts één te gebruiken. De reden waarom deze fout wordt weergegeven, is dat gebruikers van een lokale opslagplaats vaak willen voorkomen dat ze per ongeluk een extern pakket installeren vanwege bedrijfsbeleid.
Ik heb meerdere projecten in dezelfde map, hoe kan ik afzonderlijke packages.config bestanden voor elk project gebruiken?
In de meeste projecten waarin afzonderlijke projecten zich in afzonderlijke mappen bevinden, is dit geen probleem, omdat NuGet de packages.config
bestanden in elk project identificeert. Met NuGet 3.3+ en meerdere projecten in dezelfde map kunt u de naam van het project invoegen in de packages.config
bestandsnamen het patroon packages.{project-name}.config
gebruiken, en Dat bestand wordt door NuGet gebruikt.
Dit is geen probleem bij het gebruik van PackageReference, omdat elk projectbestand een eigen lijst met afhankelijkheden bevat.
Ik zie nuget.org niet in mijn lijst met opslagplaatsen, hoe kan ik deze terughalen?
- Voeg
https://api.nuget.org/v3/index.json
toe aan uw lijst met bronnen of - Verwijder
%appdata%\.nuget\NuGet.Config
(Windows) of~/.nuget/NuGet/NuGet.Config
(Mac/Linux) en laat NuGet deze opnieuw maken.
Ik ben gemigreerd naar PackageReference. Waarom mislukt mijn build: 'Dit project verwijst naar NuGet-pakketten die ontbreken op deze computer'?
In packages.config projecten, wanneer een pakket met build
props of doelen is geïnstalleerd, voegt NuGet een EnsureNuGetPackageBuildImports
doel toe om te controleren of de pakketten msbuild-inhoud zijn geïmporteerd voordat ze worden gebouwd.
Als de target
handmatig is gewijzigd, kan NuGet mogelijk niet detecteren dat deze moet worden verwijderd tijdens de migratie.
Als uw project is PackageReference
en u dit doel nog steeds in het projectbestand hebt, moet het veilig zijn om te verwijderen.
Er is geen README in Visual Studio NuGet Package Manager voor het geselecteerde pakket.
Als u het bericht 'Er is geen LEESMIJ beschikbaar voor de geselecteerde pakketversie' in Visual Studio NuGet Package Manager wordt weergegeven, betekent dit dat de geselecteerde versie van het NuGet-pakket geen ingesloten README-bestand heeft.
- Als dit niet de nieuwste versie van het pakket is, kunt u overwegen om de nieuwste versie te controleren.
- Als het README-bestand niet is ingesloten in de nieuwste versie en u niet de onderhouder van dit pakket bent, kunt u een probleem indienen of contact opnemen met de onderhouder om een README aan te vragen.
- Als u de onderhouder van het pakket bent, vindt u hier de handleiding over het insluiten van het LEESMIJ-bestand in uw pakket. Houd er rekening mee dat als u het README-bestand hebt toegevoegd aan NuGet.org maar het niet hebt ingesloten in uw pakket, de README niet wordt weergegeven in Visual Studio.