执行脚本时发生TFS构建定义发布后脚本错误
问题描述:
我有一个使用默认模板的TFS构建定义。构建完成后自行完成,但是当我包含后期部署脚本时,出现以下错误。执行脚本时发生TFS构建定义发布后脚本错误
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服务器和生成代理位于同一台计算机上。
我已经尝试了几种解决方法,但没有一个似乎是植根于此特定错误。任何帮助非常感谢,谢谢。
答
(从别人谁最近就遇到这个问题自己即将)
检查“源设置”,在构建定义。
- 确保您没有隐藏脚本的路径。也就是说,如果你的脚本在
utilities/configuration
,请确保你没有隐身utilities/
- 你的生成代理文件夹不应该使用
$(BuildDir)
,它应该使用$(SourceDir)
。请记住,这可能会改变脚本中的某些路径。
TFS的最新版本显然存在一个错误,导致这个头发拉动问题。所有关于在Powershell/Cmd等的开始目录中设置%WINDIR%
的东西都不起作用,但是这样做。
+0
修复了我的问题! – 2015-11-30 18:14:32
构建过程模板的Process选项卡是什么样的?你是否指定了脚本的**源代码控制**路径? – 2015-04-03 19:57:01
如果您已正确映射源控制路径,是否将它包含在源映射中以确保文件已下载到构建服务器? – 2015-04-05 05:49:26
感谢您的回复@DanielMann。 在ProcessTab中我有默认模板(TfvcTemplate.12.xaml)2 Build - > 5.Advanced - > Post Build Script Arguments:-verbose Post Build Script Path:$/TeamProject/Dev/Solution/DeploymentScripts /PostBuildDeployment.ps1 在源设置选项卡: 来源控制:$/TeamProject /开发/解决方案/ DeploymentScripts/PostBuildDeployment.ps1 生成代理:C:\项目\开发\解决方案\ DeploymentScripts/PostBuildDeployment.ps1 源代码控制:$/TeamProject/Dev/Solution 构建代理:C:\ Projects \ Dev \ Solution – 2015-04-06 14:42:37