2017-01-23 4 views
1

Ich führe ein PowerShell-Skript als einen der Post-Build-Schritte in TeamCity aus und an einer Stelle versuche ich eine leere Datei als Platzhalter für einen späteren Schritt zu erstellen. Der Code Ich begann mit war:PowerShell möchte in TeamCity auffordern

New-Item $MyPathAndFileName -Force 

Das hat gut funktioniert auf meinem Rechner in der ISE. Allerdings verursacht die Ausführung in Teamcity den gesamten Build-Schritt (und damit die Build-Konfiguration) mit einem eingebauten Protokolleintrag zum Scheitern verurteilt von:

Windows PowerShell is in NonInteractive mode. Read and Prompt functionality is not available. 

Ich habe dann meinen Code angehängt, um am Ende auf dem folgende:

if((Test-Path $MyPathAndFileName) -ne 0) 
    {Remove-Item $MyPathAndFileName -Force} 
New-Item $$MyPathAndFileName -Force -Confirm:$false -ErrorAction SilentlyContinue -WarningAction SilentlyContinue -InformationAction SilentlyContinue 

Es ist immer die New-Item Linie, die fehlschlägt.

Meine Frage ist, kann ich entweder

a) erhalten Powershell zu schreiben, was die Aufforderung es versucht, ich kann angezeigt werden, so fehler finden, was falsch ist ?, oder

b) erstellen Sie die neue Artikel ohne Aufforderung?

+0

Ist es möglich, dass der Account Teamcity läuft unter hat keine Berechtigungen? – TravisEz13

+0

Ich kann den Punkt Ihrer Frage sehen, aber andere Teile des gleichen Skripts und der eigentliche Kompilierschritt der Build-Konfiguration schreiben bereits in den Ordner in Frage – GavTheGuru

+0

Haben Sie versucht, '-confirm: $ false' wie vorgeschlagen [hier hinzuzufügen ] (http://stackoverflow.com/questions/16580723/powershell-in-noninteractive-mode)? – sarbis

Antwort

0

In diesem Fall stellt sich heraus, dass eines der Mittel, die auf unserem Server Teamcity eine ältere Version von Powershell ausgeführt wurde und wurde mit dem -Art Parameter Name „Datei“ zu erwarten. Dies funktionierte für diese Zeile, aber dieser Agent hatte Probleme mit einer späteren Skriptzeile, die sich mit ZIP-Dateien beschäftigte.

Da wir nicht in der Lage waren, die Powershell-Version aktualisieren wir eine vorübergehende Behelfslösung als Build-Konfiguration festgelegt, Bevollmächtigter der spezifischen Agenten zu nennen benötigten erfolgreich den Build auszuführen.

Die Grundlinie ist allerdings, dass das Problem der Power auf einem Teamcity Server ausgeführt und zu versuchen, den Benutzer aufzufordern vorherrscht. Eine Methode zum Schreiben der Eingabeaufforderung in das Build-Protokoll würde eine intelligente Fehlersuche ermöglichen.

Vielen Dank für die Antworten.

Verwandte Themen