Bearbeiten

Häufig gestellte Fragen zu NuGet

Häufig gestellte Fragen in Bezug auf NuGet.org, z. B. Fragen zum NuGet.org-Konto, finden Sie unter Häufig gestellte Fragen zu NuGet.org.

Allgemein

Was ist erforderlich, um NuGet auszuführen?

Sämtliche Informationen zur Benutzeroberfläche und zu den Befehlszeilentools sind im Installationshandbuch verfügbar.

Wird Mono von NuGet unterstützt?

Das Befehlszeilentool (nuget.exe) erstellt und führt unter Mono 3.2 und höher aus und kann Pakete in Mono erstellen.

nuget.exe funktioniert unter Windows problemlos, es gibt jedoch bekannte Probleme unter Linux und OS X. Weitere Informationen finden Sie auf GitHub unter Mono issues (Probleme mit Mono).

Ein grafischer Client ist als Add-In für MonoDevelop verfügbar.

Wie kann bestimmt werden, was in einem Paket enthalten ist und ob die Inhalte stabil und nützlich für meine Anwendung sind?

Die Primärquelle für Informationen zu einem Paket ist dessen Angebotsseite auf nuget.org (oder einem anderen privaten Feed). Jede Seite für ein Paket auf nuget.org enthält eine Beschreibung des Pakets, den Versionsverlauf und Nutzungsstatistiken. Der Abschnitt Info auf der Seite des Pakets enthält ebenfalls einen Link zur Website des Projekts, auf der Sie in der Regel zahlreiche Beispiele und weitere Dokumentationen finden, die Sie beim Verwenden des Pakets unterstützen.

Weitere Informationen finden Sie unter Finding and choosing packages (Suchen und Auswählen von Paketen).

NuGet in Visual Studio

Wie wird NuGet in verschiedenen Visual Studio-Produkten unterstützt?

Wie kann überprüft werden, ob die richtige Version der NuGet-Tools installiert ist?

Verwenden Sie in Visual Studio den Befehl Hilfe > Info Microsoft Visual Studio und achten Sie auf die Version, die neben dem NuGet-Paket-Manager angezeigt wird.

Führen Sie alternativ die Konsole des Paket-Managers (Tools > NuGet-Paket-Manager > Paket-Manager-Konsole) aus, und geben Sie $host ein, um Informationen über NuGet anzuzeigen, die ebenfalls die Version enthalten.

Welche Programmiersprachen werden von NuGet unterstützt?

NuGet funktioniert im Allgemeinen mit .NET-Sprachen und wurde dafür entwickelt, .NET-Bibliotheken in Projekte einzubinden. Da NuGet ebenfalls die MSBuild- und Visual Studio-Automatisierung für einige Projekttypen unterstützt, werden teilweise auch andere Projekte und Sprachen unterstützt.

Die neueste Version von NuGet unterstützt C#, Visual Basic, F#, WiX, C++ und Q#.

Welche Projektvorlagen werden von NuGet unterstützt?

NuGet unterstützt eine Vielzahl von Projektvorlagen vollständig, z.B. Windows, Web, Cloud, SharePoint, WiX usw.

Wie können Pakete aktualisiert werden, die Teil von Visual Studio-Vorlagen sind?

Wechseln Sie zur Registerkarte Updates in der Benutzeroberfläche des Paket-Managers, und klicken Sie auf Alle aktualisieren. Verwenden Sie alternativ den Befehl Update-Package über die Konsole des Paket-Managers.

Sie müssen das Repository der Vorlage manuell aktualisieren, um die Vorlage zu aktualisieren. Weitere Informationen zu diesem Thema finden Sie in diesem Blogbeitrag von Xavier Decoster. Beachten Sie, dass Sie diesen Vorgang auf Ihr eigenes Risiko durchführen, denn manuelle Updates können die Vorlage beschädigen, wenn die aktuellen Versionen aller Abhängigkeiten nicht miteinander kompatibel sind.

Kann NuGet außerhalb von Visual Studio verwendet werden?

Ja, NuGet funktioniert direkt über die Befehlszeile. Weitere Informationen finden Sie im Installationshandbuch und in der CLI-Referenz.

NuGet-Befehlszeile

Wie erhalte ich die aktuelle Version des NuGet-Befehlszeilentools?

Weitere Informationen finden Sie im Installationshandbuch. Um die aktuell installierte Version des Tools zu überprüfen, verwenden Sie nuget help.

Welche Lizenzbestimmungen gelten für „nuget.exe“?

Sie dürfen „nuget.exe“ unter den Bedingungen der MIT-Lizenz weiterverteilen. Sie sind für das Aktualisieren und Warten aller Kopien von „nuget.exe“ verantwortlich, die Sie weiterverteilen.

Ist es möglich, das NuGet-Befehlszeilentool zu erweitern?

Ja, es ist möglich, benutzerdefinierte Befehle zu nuget.exe hinzuzufügen. Dieser Vorgang wird in einem Blogbeitrag von Rob Reynold beschrieben, der über Archive.org aufrufbar ist.

Konsole des NuGet-Paket-Managers (Visual Studio unter Windows)

Wie kann auf das DTE-Objekt in der Konsole des Paket-Managers zugegriffen werden?

Das Objekt auf der obersten Ebene des Visual Studio-Automatisierungsobjektmodells wird als DTE-Objekt (Development Tools Environment) bezeichnet. Die Konsole stellt dieses Objekt über die Variable $DTE bereit. Weitere Informationen finden Sie in der Dokumentation zur Erweiterbarkeit von Visual Studio unter Automation Model Overview (Übersicht über das Automatisierungsmodell).

Beim Versuch, die $DTE-Variable in den Typ DTE2 umzuwandeln, wird eine Fehlermeldung ausgegeben: „Der Wert ‚EnvDTE.DTEClass‘ vom Typ ‚EnvDTE.DTEClass‘ kann nicht in den Typ ‚EnvDTE80.DTE2‘ konvertiert werden.“ Wo liegt der Fehler?

Dabei handelt es sich um ein bekanntes Problem bei der Interaktion von PowerShell mit COM-Objekten. Probieren Sie Folgendes aus:

`$dte2 = Get-Interface $dte ([EnvDTE80.DTE2])`

Bei Get-Interface handelt es sich um eine Hilfsfunktionen, die vom PowerShell-Host für NuGet hinzugefügt wurde.

Erstellen und Veröffentlichen von Paketen

Wie kann ein Paket in einem Feed aufgeführt werden?

Es gibt mehrere Versionen meiner Bibliothek, die verschiedene Versionen von .NET-Framework anzielen. Wie kann ein einziges Paket erstellt werden, das dies unterstützt?

Wie können eigene Repositorys oder Feeds eingerichtet werden?

Wie können Pakete in einer Massenoperation an meinen NuGet-Feed hochgeladen werden

Weitere Informationen finden Sie unter Bulk publishing NuGet packages (Massenveröffentlichen von NuGet-Paketen) (jeffhandly.com).

Arbeiten mit Paketen

Ist es möglich, NuGet-Pakete ohne Internetverbindung zu installieren?

Wie können Pakete an einem anderen Speicherort als dem Standardordner für Pakete installiert werden?

Legen Sie die Einstellung repositoryPath in Nuget.Config mithilfe von nuget config -set repositoryPath=<path> fest.

Wie kann vermieden werden, dass der Ordner für NuGet-Pakete der Quellcodeverwaltung hinzugefügt wird?

Legen Sie die Einstellung disableSourceControlIntegration in Nuget.Config auf true fest. Dieser Schlüssel funktioniert auf Projektmappenebene und muss daher zur $(Solutiondir)\.nuget\Nuget.Config-Datei hinzugefügt werden. Durch das Aktivieren der Paketwiederherstellung in Visual Studio wird diese Datei automatisch erstellt.

Wie kann die Paketwiederherstellung deaktiviert werden?

Warum wird die Fehlermeldung „Der Abhängigkeitsfehler kann nicht aufgelöst werden.“ angezeigt, wenn ein lokales Paket mit Remoteabhängigkeiten installiert wird?

Sie müssen die Quelle Alle auswählen, wenn Sie ein lokales Paket im Projekt installieren. Dadurch werden alle Feeds anstelle von einem einzigen verwendet. Diese Fehlermeldung wird angezeigt, weil Benutzer von lokalen Repositorys aufgrund von Unternehmensrichtlinien häufig verhindern möchten, dass ein Remotepaket versehentlich installiert wird.

Es gibt mehrere Projekte im selben Ordner, wie können für jedes Projekt separate PACKAGES.CONFIG-Dateien verwendet werden?

In den meisten Projekten, in denen sich separate Projekte in separaten Ordnern befinden, ist dies kein Problem, da NuGet die packages.config-Dateien in jedem Projekt identifiziert. Wenn sich ab NuGet 3.3 und höher mehrere Projekte im gleichen Ordner befinden, können Sie den Namen des Projekts zu den packages.config-Dateinamen hinzufügen, damit NuGet diese Datei verwendet. Verwenden Sie dabei das Muster packages.{project-name}.config.

Dies stellt kein Problem dar, wenn Sie PackageReference verwenden, da jede Projektdatei eine eigene Liste der Abhängigkeiten enthält.

nuget.org wird nicht in der Liste der Repositorys angezeigt, wie kann dies geändert werden?

  • Fügen Sie https://api.nuget.org/v3/index.json zur Liste der Quellen hinzu, oder
  • Löschen Sie %appdata%\.nuget\NuGet.Config (Windows) oder ~/.nuget/NuGet/NuGet.Config (Mac/Linux), damit NuGet diese Dateien neu erstellen kann.

Ich habe zu PackageReference migriert, warum ist mein Build-Fehler "Dieses Projekt verweist auf NuGet-Pakete, die auf diesem Computer fehlen".

In packages.config-Projekten wird bei Installation eines Pakets mit build-Eigenschaften oder -Zielen von NuGet ein EnsureNuGetPackageBuildImports-Ziel hinzugefügt, um zu überprüfen, ob die MSBuild-Inhalte des Pakets vor der Erstellung importiert wurden. Wenn target manuell bearbeitet wurde, kann NuGet möglicherweise nicht erkennen, dass das Ziel bei der Migration entfernt werden muss.

Wenn es sich bei Ihrem Projekt um PackageReference handelt und sich dieses Ziel noch in der Projektdatei befindet, sollte es sicher entfernt werden können.