2017-06-21 1 views
0

Ich habe ein Powershell-Skript, das von einem Powershell-Buildschritt in TFS aufgerufen wird. Das Powershell-Skript funktioniert sowohl auf meinem Entwicklungscomputer als auch auf dem Build-Server, wenn es über die Befehlszeile aufgerufen wird. Das Skript verwendet Invoke-Sqlcmd, um SQL auszuführen.Powershell kann Invoke-Sqlcmd nicht von einem TFS-Build finden

Wenn jedoch das Skript aus dem TFS ausgeführt wird, bauen, es Fehler mit dem folgenden:

The term 'Invoke-Sqlcmd' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. 

Dies geschieht nur aus mit TFS so schwer, herauszufinden, ich habe, wie es zu beheben. Wie bekomme ich das von TFS?

+2

Haben Sie die richtigen PowerShell-Module auf Build Agent installiert? – JodyT

+0

Was gibt Get-Module zurück? –

+0

@JodyT Ja, 'Invoke-Sqlcmd' funktioniert, wenn es von einer Powershell-Eingabeaufforderung auf dem Build-Server ausgeführt wird. Nur nicht, wenn der Build von TFS ausgelöst wird. – GiddyUpHorsey

Antwort

0

Das Invoke-Sqlcmd Cmdlet ist Teil des SQLPS-Moduls.

Wie der Fehler angibt, ist das Modul für den Bereich der Sitzung, aus der Sie dieses Skript aufrufen, nicht sichtbar (aus irgendeinem Grund). Vielleicht würde nur ein Import-Module sqlps -DisableNameChecking innerhalb des Skripts es verfügbar machen.

https://technet.microsoft.com/en-us/library/hh231286(v=sql.110).aspx

+0

Hallo, wenn ich "Import-Module sqlps -DisableNameChecking" von einer Powershell-Eingabeaufforderung auf dem Build-Server ausführen (wo der Agent ausgeführt wird) scheint es zu funktionieren, aber wenn innerhalb eines von TFS ausgelösten Skripts ausgeführt wird, schlägt dieser Fehler fehl: ' Import-Modul: Das angegebene Modul 'sqlps' wurde nicht geladen, da in keinem Modul Verzeichnis eine gültige Moduldatei gefunden wurde.' – GiddyUpHorsey

Verwandte Themen