NuGet Verpackung und verweisen auf dll ' s

Hintergrund: ich habe zwei assemblies genannt "A" und "B". """Referenzen "B". "A" auch Verweise auf einige zusätzliche dll ' s (Microsoft.Enterprise Library.Daten und Microsoft Enterprise Library.Common ), dass ich glaube, verpackt in nupkg.

Ich glaube, meine nupkg-Paket enthalten sollte, die Versammlung Ausgabe von "A", "B" und die beiden "Microsoft Enterprise" - Baugruppen, so dass, wenn jemand installiert, mein Paket wird es geben Ihnen einen direkten Verweis auf die Assembly "A" und die anderen drei Baugruppen zur Verfügung stehen würde (aber nicht direkt referenziert, so dass Ihre app laufen würde. Was ist die richtige Art der Verpackung die nicht Verweise dlls?

Versuch #1: die Verpackung alle benötigten dll ' s in \net35-Ordner
Nach der NuGet-Dokumentation über die "Referenzen" element ", Wenn dieses element weggelassen wird, dann die üblichen Verhalten betrifft, die Bezugnahme auf jede Baugruppe in der lib-Ordner."

So, ich gehe davon aus, dass mit diesem element werden nur die Baugruppen als Referenzen angegeben. Dies scheint nicht der Fall zu sein, wenn ich auch ein "file" - element <file src=*.dll" target="lib\net35" />. Wenn ich ein element haben, wie diese, werden alle dll ' s auf der Verpackung Ergebnisse in der assembly, die dieses Paket unter Referenz ALLE Baugruppen in der \net35-Verzeichnis. Dies ist nicht, was ich tun will. Ich erwartete eine Magie, die nur die Anzahl der angegebenen "Referenzen" wäre eine tatsächliche verwiesen werden, und alle anderen bleiben würde, in der explodierte \packages-Ordner und die app funktionieren würde, da alle dlls liegen im gleichen Verzeichnis. Vielleicht bin ich falsch....

Versuch #2 Hinzufügen, die als Inhalt zum Projekt
Wenn ich das nicht referenzierte Assemblys in \content\lib anstelle von lib\net35, wenn verpackt dies schafft eine \lib-Ordner in das Projekt und direkt dumps \content\lib-dlls in das Projekt, die dann zwingt uns, zu überprüfen, Sie in die Quellcodeverwaltung ein. Dies funktioniert, kompiliert und läuft, wie ich will, aber ich möchte wirklich nicht, diese gespeichert im \lib-Ordner des Projektes.

Ich bin auf der Suche nach einer Lösung wo wird das Projekt die Verweise auf "A" und kann noch laufen mit den anderen erforderlichen Assemblys co-befindet sich aber nicht direkt verwiesen wird. Wie es scheint, Versuch #1 ist der richtige Weg, aber vielleicht ist es ein bug?

FYI, ich bin in diese als ein Problem mit NuGet direkt, um es zu sehen, dass team hat eine Antwort.

InformationsquelleAutor Jay | 2012-10-10
Schreibe einen Kommentar