Erstellen Sie nuget-Paket für eine Lösung mit mehreren Projekten
Bauen wir gerade eine Lösung mit mehreren Projekten.
Wir haben so etwas wie dieses:
- Common
- Logging
- Logging.NLog
- Threading
Also Die Protokollierung.NLog ist abhängig von der Protokollierung, der Protokollierung, der auf Gemeinsamen...etc.
Wenn wir pack-Protokollierung.NLog ich möchte nuget zu entdecken, die Loggin und Gemeinsame Abhängigkeiten.
Im moment habe ich ein Paket mit Allgemeinen, dann im Logger-I installiert das Paket Gemeinsam mit
install-package Common
Aber immer wenn ich eine änderung an einer Gemeinsamen, ich habe um das Paket zu aktualisieren, und Sie werden erstellt, indem unser continous integration systeme (Hudson), so ist es ziemlich ärgerlich, wenn wir uns entwickeln.
Ich möchte einfach ein Projekt Reference (Verweis Hinzufügen -> Project...) und der nuget-entdecken Sie die depencies sowieso.
Gibt es einen Weg, es zu erreichen?
InformationsquelleAutor der Frage Charles Ouellet | 2011-09-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eine geplanteFunktion targeting genau dieses Szenario.
Dies ist, wie es scheinbar Aussehen:
Es hat anscheinend schon umgesetzt bloße Tage her, aber es gibt bugs noch sein gebügelt aus.
Das feature, so wie es momentan steht, ermöglicht:
ODER
Den feature-Anfrage Termine den ganzen Weg zurück bis 1.5, aber es rutschte ständig ab. Vor kurzem, obwohl, es sammelte genug Masse (- Anforderungen) zu sein, geplant für die Freigabe in Nuget-2.3.
Den release-plan Peg-version 2.3 "Ende April 2013" so stay tuned.
(Derzeit die aktuelle Nuget-version ist 2.2.1).
InformationsquelleAutor der Antwort Cristi Diaconescu
Ich denke, Charles heißt, er will NuGet automatisch beheben Projekt verweist, in Paket-Abhängigkeiten, wenn diese referenzierten Projekten werden auch verwendet, zum erstellen von NuGet-Paketen, richtig?
Beispiel:
Dies ist etwas, was ich gesucht hatte für mich als gut, aber leider habe ich festgestellt, dass es derzeit noch nicht unterstützt. Es ist ein Workitem auf Sie, welche für NuGet 1.7, aber es gibt nicht einmal einen Entwurf auf, wie man diesem noch.
InformationsquelleAutor der Antwort R. Otten
Dieser thread hat einen guten Vorschlag: NuGet und mehrere Lösungen
Grundsätzlich, brechen Sie die gemeinsamen Komponenten, um Ihre eigene Lösung mit Ihren eigenen release-Lebenszyklus.
InformationsquelleAutor der Antwort Matthew Skelton
Gibt es derzeit keine Möglichkeit, genau das zu tun, was Sie Fragen, aber die folgenden werden Ihnen helfen, optimieren Sie Ihre updates.
Es klingt wie Sie brauchen, um hinzuzufügen, nuspec-Dateien auf Ihre Lösung. So etwas wie die folgenden drei Dateien. Beachten Sie die Abhängigkeiten in der zweiten zwei. Diese beziehen sich auf die gleiche dll-version wie üblich durch [$version$]. Dies bedeutet, dass wenn Sie führen Sie den folgenden Befehl aus, aktualisiert Sie alle drei, weil die eckigen Klammern auf die Abhängigkeiten erfordern eine bestimmte version eines abhängigen Pakete.
PM> update-Paket common
In Hudson, die Sie benötigen, um ausführen diese nuspec-Dateien mit nuget pack-Befehl (siehe Nuget-Befehlsreferenz) und sind die resultierenden Pakete in Ihrem Artefakte, UND installieren Sie Sie auf Ihrem lokalen nuget-server. Ich werde lassen, die über Sie.
Die andere Sache, die Sie würden tun müssen, ist sicherzustellen, dass alle assemblies die gleiche version für den gleichen build. Wieder, Hudson kümmern kann, diese oder verwenden Sie eine gemeinsame Datei AssemblyInfo.
Gemeinsam.nuspec -
Protokollierung.nuspec -
Protokollierung.NLog
InformationsquelleAutor der Antwort Daniel Dyson