2017-10-16 2 views
0

Ich habe versucht, durch die Dokumentation für NuGet und Visual Studio zu kriechen, fand aber keine genaue Antwort für meine Frage. Bin auch neu in NuGet.NuGet Paket Referenz & Version

Wenn ich eine packages.config wie unten:

<packages> 
    <package id="xxx.SomePackage" version="1.0.1" targetFramework="net452" /> 
</packages> 

Und eine ähnliche Referenz in meinem CSPROJ für das Projekt:

<Reference Include="xxx.SomePackage, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> 
    <HintPath>..\packages\xxx.SomePackage.1.0.1\lib\net45\xxx.dll</HintPath> 
    <Private>True</Private> 
</Reference> 

Angenommen, ich habe eine neuere Version, die ich das will Projekte, die 1.0.2 verwenden sollen, sollte ich jede csproj/packages.config-Referenz manuell ändern, um auf diese Version zu zeigen, oder ist NuGet intelligent genug, um nur die neueste Version für meine Projekte zu erhalten und anzuwenden? Ich habe viele Projekte, daher ist es ein Schmerz, sich für jeden zu ändern.

Hinweis: Ich habe gelesen über die Verwendung von SpecificVersion: False. Ist das etwas, was ich benutzen kann? Hinweis: Ich habe auch über "Update-Paket -reinstall" gelesen. Ist dies die beste und bevorzugte Methode für Szenarien wie meiner?

+0

Sie müssten die Pakete manuell auf ihre neuesten aktualisieren. VS verfügt über NuGet Package Manager, mit dem Sie alle Pakete einer Lösung aktualisieren können. –

+0

@Adi, ein Update für dieses Problem? Hast du dein Problem gelöst? Wenn nicht, lassen Sie mich die neuesten Informationen zu diesem Problem wissen. –

+0

@ Leo-MSFT Vielen Dank für Ihre Informationen, es ist sicherlich hilfreich und ich habe es notiert. Werde das Konsolupdate bald versuchen und ich werde auf deine Antwort antworten, wie es gelaufen ist ^^ – Adi

Antwort

1

sollte ich jede csproj/packages.config-Referenz manuell ändern, um auf diese Version zu zeigen, oder ist NuGet intelligent genug, um nur die neueste Version für meine Projekte zu erhalten und anzuwenden? Ich habe viele Projekte, daher ist es ein Schmerz, sich für jeden zu ändern. "

Nein, Sie müssen die csproj/packages.config-Referenz nicht manuell ändern, um auf diese Version zu verweisen. NuGet intelligent genug, um nur die neueste Version für Ihre Projekte zu erhalten und anzuwenden.

Sie können die Befehlszeile Update-Package -Id <package_name> -Version 1.0.2 in der Package Manager Console verwenden, ohne ein bestimmtes Projekt anzugeben. Update-Package wirkt sich auf alle Projekte in einer Lösung aus. Weitere Informationen finden Sie unter update-package.

Alternativ können Sie auch alle Projekte über Manager NuGet Packages for Solution aktualisieren. Recht Lösung klicken (nicht-Projekt), wählen Sie Manager-NuGet Pakete für Lösung, schalten Sie auf Registerkarte Updates, wählen Sie das Paket zu aktualisieren, wählen Sie dann die Projekte, die Sie wollen, um das Paket zu aktualisieren:

enter image description here

Neben , Update-Package -reinstall wird verwendet, um Pakete neu zu installieren, mit diesem Befehl ist viel einfacher als das Entfernen eines Pakets und dann versuchen, das gleiche Paket in der NuGet-Galerie mit der gleiche Version zu finden. Dieser Befehl aktualisiert die Version des Pakets nicht.

Hoffe, das hilft.

Verwandte Themen