Hallo Gemeinde,
ich hätte mal wieder eine blöde Frage.
Man kann ja aus dem Internet z.B. Codeplex Beispiel Lösungen für Visual Studio herunterladen.
Öffnet man diese dann in VS, werden beim ersten kompilieren alle benötigten Pakete heruntergeladen.
Ich möchte nun auch eine Solution weitergeben.
Wie mache ich das, dass derjenige, der die Lösung entzippt und öffnet eine möglichst schlanke Datei bekommt?
Vielen Dank.
Du meinst eine ZIP-Datei ohne die NuGet-Packages? Dann packe nur die nuget.config-Datei mit rein (beachte u.u. explizit den Abschnitt "packageRestore").
Ich würde die nuget.config nicht mitgeben, die ist für den Empfänger nicht weiter von Bedeutung, denn dort kann man ja nur so Dinge wie die NuGet-Quelle (meist reicht der Standard) oder Cache-Ordner eingestellt.
Folgendes würde ich löschen:*Die "bin"- und "obj"-Ordner *Den ".vs"-Ordner *Den "packages"-Ordner *Die ".csproj.user"-Datei *Die ".csproj.vspscc"-Datei
Das sind alles Ordner/Dateien, die VisualStudio automatisch anlegt.
Die "bin"- und "obj"-Ordner sollten bekannt sein, im "packages"-Ordner legt NuGet die Dateien ab, der Rest ist internes Zeug von VisualStudio.
Natürlich kann es auch sein, dass z.B. der bin-Ordner notwendig ist, aber dann ist bei der Entwicklung irgendetwas schief gelaufen 😉
Beim Start muss der Empfänger dann bloß die NuGet-Pakete herunterladen, das setzt voraus, dass sie an den üblichen Orten (wie nuget.org) zu finden sind. Sind sie das nicht, kannst Du dem entgegenwirken, dass Du über die nuget.config eine weitere lokale Quelle (ein Ordner) einstellst und das dann beides mitlieferst. Es kann (muss nicht) aber auch funktionieren, wenn Du im packages-Ordner die fraglichen Packages übriglässt, sodass VisualStudio diese Pakete nicht herunter laden muss und dann auch nie merkt, dass es sie nicht finden kann.
Wenn Du das alles aufgeräumt hast, einfach als ZIP packen und fertig hast Du dein kleines Projekt-Paket.
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Nachtrag:
Je nach Projekttyp gibt es unterschiedliche Orte, wo die NuGet-Packages gespeichert sind, s. Paketverweise (PackageReference) in Projektdateien.
Es kann also evtl. auch nötig sein, direkt die packages.config mitzuliefern.
Es kann also evtl. auch nötig sein, direkt die
> mitzuliefern.
Das "evtl." kann man doch streichen.
Wenn man dieses Format nutzt, gehört die packages.config zum Projekt (also ist in der Projektstruktur eingebunden), sonst weiß NuGet doch gar nicht welche Projekte es ziehen muss. =)