我使用默认模板进行TFS Build定义。构建完成后,但当我包含一个部署后脚本时,我收到以下错误。
Exception Message: The directory name is invalid (type Win32Exception)
Exception Stack Trace:
Server stack trace:
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess.ProcessWrapper. Start()
at Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess.InvokeProcessIn ternal.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.CompleteAsyncC odeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
脚本本身是一个powershell脚本,它包含在我正在尝试构建的解决方案中,它只调用写主机消息。 (此时进行测试)
构建定义已选择所有默认值,只有解决方案,后构建参数和后构建脚本路径已更改。该脚本将在解决方案中检入源代码管理。
这是一个POC环境,所以我在一台服务器上安装了所有东西,因此TFS服务器和构建代理位于同一台机器上。
我已经为此尝试了几种解决方法,但它们似乎都没有围绕这个特定的错误。非常感谢任何帮助,谢谢。
答案 0 :(得分:2)
(来自最近遇到此问题的人)
检查您的"来源设置"在构建定义中。
utilities/configuration
,请确保您没有隐藏utilities/
$(BuildDir)
,它应使用$(SourceDir)
。请记住,这可能会改变脚本中的某些路径。 最新版本的TFS中显然存在一个导致这种拉毛问题的错误。关于在Powershell / Cmd等的Start-in目录中设置%WINDIR%
的所有内容都没有用,但确实如此。