2016-05-17 10 views
1

BeschreibungRun Package Manager Befehle in Teamcity Build-Schritt

Ich brauche die nuget Pakete (MathNet.Numerics) zu unterzeichnen, bevor ich mein Projekt zu bauen, dies zu tun, ich bin mit Nivot.StrongNaming Paket, und ich führe die Befehle in der unten stehenden Package Manager Console:

Install-Package Nivot.StrongNaming 
$root = join-path (split-path $dte.solution.filename) packages 
$solution = (split-path $dte.solution.filename) 
$key = Import-StrongNameKeyPair -KeyFile $solution\MuProjectFolder\Key.snk 
dir -rec $root\MathNet.Numerics.3.11.0\*.dll | where { -not (Test-StrongName $_) } | Set-StrongName -KeyPair $key -Verbose 

(HINWEIS ich nicht die signierte Version der Pakete verwenden, da dies ein gemeinsames Projekt ist, wird es andere Projekte brechen ...)

Frage

Gibt es eine Weise, die ich diese Schritte, um Teamcity hinzufügen können, bevor sie die Lösung zu erstellen versucht? Das würde sicherstellen, dass wir es unterzeichnet haben.

Wie kann ich einige Package Manager Console-Befehle (Visual Studio) in einem Build-Schritt im Team City-Projekt ausführen?

Kann ich es als Befehlszeile ausführen?

+0

Möchten Sie NuGet-Pakete oder etwas komplizierteres wiederherstellen? –

+0

@EvolveSoftwareLtd Ich habe der Frage weitere Details hinzugefügt. –

Antwort

2

Ich habe dies unter der Annahme getan, dass Nivot.StrongNaming ist kein referenziertes Paket in packages.config - wenn es dann ignoriert nur den relevanten Schritt, um das Paket zu installieren.

Ich habe auch die Versionsnummer angeheftet, so dass es einfacher ist, die Powershell-Moduldatei zu importieren - Letztendlich müssen Sie möglicherweise an den Pfaden basteln, damit es in Ihrer Umgebung funktioniert, aber konzeptionell ist es in Ordnung.

  1. Speichern Sie das folgende Skript zu einer PS1 und fügen Sie sie der Versionskontrolle - diese Art und Weise Sie es kennen auf der Build-Agent sein werden, wenn Sie es brauchen. sign-assembly-using-nivot.ps1

  2. Erstellen Sie eine Buildkonfiguration mit einem Befehlszeilenschritt, um Nivot.StrongNaming (optional abhängig von meiner Annahme) und einen PowerShell-Schritt zum Ausführen des Skripts zu installieren. Ich installiere MathNet.Numerics nur, weil ich keine Lösung habe.

enter image description here

Kommandozeilen Läufer Nivot.StrongNaming zu installieren, wenn erforderlich enter image description here

Powershell-Skript Läufer Bootstrap enter image description here

  1. Jetzt erstellen th Diese Variablen ermöglichen Ihnen die einfache Anpassung der für Ihre Umgebung erforderlichen Pfade.

enter image description here

Ihr Buildprotokoll soll das hilft so etwas wie diese

enter image description here

Hoffnung aussehen.