2017-06-21 6 views
0

私はTFSのPowershellビルドステップから呼び出されるpowershellスクリプトを持っています。 PowerShellスクリプトは、コマンドラインから起動したときに、私のdev PCとビルドサーバーの両方でうまく動作します。スクリプトはInvoke-Sqlcmdを使用してSQLを実行します。スクリプトがTFSから実行された場合PowershellはTFSビルドからInvoke-Sqlcmdを見つけることができません

ただし、次でそれのエラー、構築:これはTFSはので、私はそれを修正する方法を考え出す困難を抱えているとから発生し

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. 

を。これをTFSからどのように機能させるには?

+2

ビルドエージェントにインストールされている正しいPowerShellのモジュールを持っていますか? – JodyT

+0

Get-Moduleは何を返しますか? –

+0

@JodyTはい、 'Invoke-Sqlcmd'は、ビルドサーバ上のpowershellコマンドプロンプトから実行されると動作します。ビルドがTFSからトリガされたときだけではありません。 – GiddyUpHorsey

答えて

0

Invoke-Sqlcmdコマンドレットは、SQLPSモジュールの一部です。

エラーが表示されるため、モジュールは(何らかの理由で)そのスクリプトを呼び出すセッションのスコープでは表示されません。たぶん、スクリプトの中にちょうどImport-Module sqlps -DisableNameCheckingが利用可能になるでしょう。

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

+0

こんにちは、(エージェントが実行されている)ビルドサーバ上のpowershellプロンプトから 'Import-Module sqlps -DisableNameChecking'を実行すると動作しますが、TFSによってトリガされたスクリプトの内部から実行すると、インポートモジュール:任意のモジュール ディレクトリに有効なモジュールファイルが見つからなかったため、指定されたモジュール 'sqlps'がロードされませんでした。 – GiddyUpHorsey

関連する問題