빌드 서버에서 Powershell을 실행하도록 사용자 지정 빌드 프로세스 템플릿을 수정했습니다. 따라서 SharePoint 솔루션의 배포를 자동화하는 스크립트를 실행할 수 있습니다. 빌드 서버 Powershell 버전을 2.0에서 3.0으로 업그레이드 할 때까지 (모든 작업은 SCVMM 관리 콘솔 2012를 설치하고 Powershell 3.0은 사전 요구 사항이었습니다) 완료해야합니다. 빌드 템플릿 자체에서 PowerShell을 실행하는 사용자 지정 빌드 프로세스 템플릿이 실패하는 이유
, 나는 다음과 같은 속성으로 PowerShell 명령을 실행하기 위해 Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess 워크 플로우 항목을 사용하고 있습니다 : 이제 모든Arguments : String.Format(" ""& '{0}' -DropLocation '{1}' {2} "" ", ScriptFilename, BuildDetail.DropLocation, PostDropScript2Arguments)
FileName : "powershell"
OutputEncoding : System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
시간 나는 다음과 같은 오류가 빌드를 실행하려고하지 :
그것은 빌드처럼 보인다Exception Message: File not found: PowerShell (type FileNotFoundException) Exception Stack Trace: Server stack trace:
at 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)Exception rethrown at [0]: at 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 bookmarkManager)Inner Exception Details:
Exception Message: The system cannot find the file specified (type Win32Exception) Exception Stack Trace: at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) at Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess.ProcessWrapper.Start()
가 더 이상 실제 PowerShell을 파일로 "PowerShell을"명령을 링크 할 수 있습니다.
수동으로 빌드 서버에 가서 "powershell"을 명령 줄에 입력하면 예상대로 PowerShell이 시작되었습니다.
다른 누구도 이전에이 문제가 발생 했습니까?
환경 변수가 단순히 새로 고쳐지지 않았을 가능성이 있습니까? 즉, 설치 이후 Windows 서비스 또는 서버를 다시 시작 했습니까? – Nathan
@Nathan이 입력을 주셔서 감사합니다. Powershell의 새 버전을 설치 한 후 빌드 서버를 다시 시작해야했기 때문에 불행히도 문제가 있다고 생각하지 않습니다. 나는 그것을 다시 시도 할 것이다! –
나는 정확히 똑같은 문제를 보았다. 내가 생각할 수있는 * 다른 * 방법 (LinqPad와'Process.Invoke'를 포함하여 빌드 계정 아래에 있음)을 사용하면 경로없이 PowerShell을 시작할 수 있지만 갑자기 빌드 프로세스를 수행 할 수 없습니다. –