Ich habe die Anweisung zum Erstellen eines neuen .NET Core-Projekts befolgt und dieses von cmd ausgeführt:
dotnet new
dotnet restore
Die zweite Anweisung erstellt project.lock.json
, die viel Müll enthält (nicht wirklich Müll, sondern Tonnen von Abhängigkeiten, Konfigurationen usw.). Ich gehe davon aus, dass es sich bei diesen Abhängigkeiten um .NET Framework handelt, das in separate NuGet-Pakete unterteilt ist.
Meine Fragen:
- Ist meine Annahme richtig?
- Kann ich meine Anwendung leichter machen, indem ich nicht benötigte NuGet-Pakete / Abhängigkeiten entferne?
- Wie?
.net
.net-core
project.json
Andrei
quelle
quelle
Antworten:
Update :
project.json
wurde durch.csproj
als Hauptprojektdatei für .NET Standard-Projekte ersetzt. Diese Frage bezieht sich auf das alte System vor der Einführung von PackageReference in NuGet 4.0 .Sie können gelegentlich immer noch
project.lock.json
als Artefakt des Erstellungsprozesses sehen, aber es sollte ignoriert werden. Die Verwaltung der NuGet-Pakete, von denen Ihr .NET Standard / .NET Core-Projekt abhängt, sollte immer von beiden durchgeführt werden.csproj
Datei direktdotnet add package
usw.)Alte Antwort für die Nachwelt:
project.lock.json
Wird vom .NET-Tool generiert, wenn Sie die Projektpakete wiederherstellen. Sie sollten es nicht berühren oder in die Quellcodeverwaltung einchecken.project.json
Direkt bearbeiten .Während des Paketwiederherstellungsprozesses (
dotnet restore
) muss NuGet die Abhängigkeiten in Ihrem Projekt analysieren, ihre Abhängigkeitsdiagramme durchgehen und herausfinden, welche Pakete für Ihr Projekt und die Abhängigkeiten Ihres Projekts installiert werden sollen.Dies ist eine nicht triviale Menge an Arbeit, daher werden die Ergebnisse zwischengespeichert
project.lock.json
, um nachfolgende Wiederherstellungen schneller und effizienter zu machen. Die Sperrdatei wird neu generiert, wenn sieproject.json
geändert unddotnet restore
erneut ausgeführt wird.quelle
Ab und zu haben wir in unserem Team das gleiche Problem, wenn jemand ein Nuget aktualisiert. Die lock.json-Dateien werden nicht aktualisiert, selbst wenn die Dotnet-Wiederherstellung ausgeführt wird. Bevor Sie die letzte Option anwenden (löschen), schlage ich vor, grunzen von Ihrer Kommandozeile. Wenn das nicht funktioniert, lösche alle lock.json-Dateien und führe die dotnet-Wiederherstellung aus . Dies ist meine Lieblingswahl;)
quelle
project.lock.json
?package-lock.json
mitproject.lock.json