2017-02-27 4 views
1

Ich benutze NuGet für die Paketverwaltung außerhalb des Kontexts von Visual Studio. Ich habe eine packages.config-Datei und kann nuget restore es zu einem Paketverzeichnis in meinem Projekt.Wie kann ich NuGet-Paketdateien von einem PowerShell-Skript referenzieren?

NuGet lädt jedes Paket in ein Verzeichnis mit dem Namen des Pakets und seiner Versionsnummer. Ich muss auf Dateien von diesen Paketen in PowerShell zugreifen, aber ich möchte vermeiden, die Versionsnummer in den Dateipfad aufzunehmen, da dies eine manuelle Änderung erfordern würde, wenn ich Versionen in packages.config vorziehen möchte.

Antwort

2

ich den Weg bauen würde ich die Pakete Konfigurationsdateien mit

# Get solution folder 
$PathToSolution = "C:\Some\Path\SolutionFolder" 

# find all packages under the solution folder 
$configs = gci $PathToSolution -Filter packages.config -recurse 

# get content of every package config file 
$configs.fullname | %{[xml]$packages = Get-Content $_; 
        $packages.packages.package | foreach{ 
               # Get pacakge attributes 
               $packageId=$_.id; 
               $packageVersion=$_.version; 
               # Build the path from the build attributes 
               $Path="$PathToSolution\packages\$packageId.$PackageVersion"; 
               Write-output $Path}} 

Das einzige, was ich hinzufügen würde, ist die Prüfung der Eindeutigkeit der Paketpfad, weil die meisten wahrscheinlich sind Sie ein paar Pakete in mehr als einer mit Projekt

Verwandte Themen