2016-04-07 5 views
4

Wenn Sie mehrere packageSources in Ihrem NuGet.config haben:NuGet packageSources Priorität

<packageSources> 
    <clear /> 
    <add key="dev" value="http://server2/branches/feature1/nuget" /> 
    <add key="release" value="http://server1/nuget" /> 
</packageSources> 

Ist die Reihenfolge, in der XML verwendet, wenn nuget installieren läuft, etc? Wenn ich packageA in Version 1.0.0-SNAPSHOT in beiden habe, wird die dev-Kanalversion in feature1-Zweig gewinnen?

Antwort

2

Die Reihenfolge Ihrer Feeds in nuget.config bestimmt die Reihenfolge, in der sie in den Dropdown-Menüs aus den verschiedenen Ansichten von Visual Studio in NuGet angezeigt werden. In allen Fällen haben Sie die Wahl, aus welchem ​​Feed Sie installieren. Siehe die Screenshots unten.

Visual Studio verfolgt nicht, woher Ihr Paket stammt, daher befindet sich die Paket-ID wirklich in einem globalen Namespace, in dem Sie wissen müssen, zu welchem ​​Feed es gehört. Visual Studio zeigt Ihnen ein beliebiges Paket aus dem ausgewählten Feed mit einer übereinstimmenden ID an. Es ist daher möglich, dass Sie ein Paket, das Sie von einem Feed installiert haben, mit einem anderen Feed aus einem anderen Feed überschreiben.

Für einen NuGet-Feed, den ich in meiner Firma verwalte, stehe ich unseren internen Paketen mit <CompanyName>. voran, um das Risiko eines Namenskonflikts jetzt und in der Zukunft zu reduzieren.

enter image description here

enter image description here

+0

Dank. Ich versuche tatsächlich, basierend auf der Reihenfolge tatsächlich zu überschreiben. Auf diese Weise erhalten Pakete, die auf einem Feature-Zweig erstellt wurden, eine höhere Priorität, basierend auf den packageSources. Auf diese Weise enthält http: // unserserver/featurebranch1/nuget dieselben Paketnamen, die nur für einen bestimmten Zweig erstellt wurden. Auf diese Weise müssen wir unsere Abhängigkeiten nicht direkt ändern. Wenn ein Paket im Feature-Feed fehlt, wird es vom regulären Mainline-Feed abgezogen. – Skeeterbug

+0

Könnten Sie einfach eine andere nuget.config-Datei in Ihrem Feature-Zweig eingecheckt haben? So können Sie beispielsweise für diese Zweige einen "Freigabefeed" und im Trunk einen "Entwicklungsfeed" angeben. –

+0

Also, was passiert, wenn ich nuget Restore von der Kommandozeile ausführen, welche Quelle wird es verwenden, wenn ein Paket in beiden Quellen ist? – red888