ビルドサーバーでPowershellを実行するようにカスタムビルドプロセステンプレートを変更しました。これは、SharePointソリューションの展開を自動化するいくつかのスクリプトを実行できるようにするためです。ビルドサーバーのPowershellバージョンを2.0から3.0にアップグレードするまで、すべてが正常に機能していました(SCVMM Admin Console 2012をインストールしていて、Powershell 3.0が前提条件であったため、これを行う必要がありました)。
ビルドテンプレート自体で、Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcessワークフローアイテムを使用して、次のプロパティを使用してPowerShellコマンドを実行しています。
引数:String.Format( "" "&'{0}' -DropLocation'{1}' {2}" ""、ScriptFilename、BuildDetail.DropLocation、PostDropScript2Arguments)
ファイル名:「PowerShell」
OutputEncoding:System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
これで、ビルドを実行しようとするたびに、次のエラーが発生します。
例外メッセージ:ファイルが見つかりません:PowerShell(タイプFileNotFoundException)例外スタックトレース:サーバースタックトレース:
Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess.ProcessWrapper.Start()at Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess .InvokeProcessInternal.RunCommand(AsyncState state)at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md、Object [] args、Object server、Object []&outArgs)at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage (IMessage msg、IMessageSink replySink)[0]で再スローされた例外:System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg、Boolean bProxyCase)at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed、MessageData&msgData)at System.Func
2.EndInvoke(IAsyncResult result) at System.Activities.AsyncCodeActivity
1 .System.Activities.IAsyncCodeActivity.FinishExecution(AsyncCodeActivityContext context、IAsyncResult result)at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor、BookmarkManagerブックマークマネージャー)内部例外の詳細:
例外メッセージ:システムは指定されたファイル(タイプWin32Exception)を見つけることができません例外スタックトレース:Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess.ProcessWrapper.Start()のSystem.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
ビルドで「powershell」コマンドを実際のPowerShellファイルにリンクできなくなったようです。
手動でビルドサーバーにアクセスし、コマンドラインに「powershell」と入力すると、期待どおりにPowerShellが起動しました。
他の誰かが以前にこの問題を経験したことがありますか?
どうもありがとう