发布管理服务器手动成功,但自动失败
Release management server succeeds manual, but fails automated
我正在尝试将发布管理服务器配置为在 TFS 上的特定构建配置成功时部署到测试服务器。现在我有一个运行良好的构建定义,我使用构建过程模板 'ReleaseTfvcTemplate.12.xaml'.
发布管理服务器 (RMS) 中的 'Release Template' 设置为在生成时触发。
现在,当我将 Release 类别中的 'Release Build' 属性 设置为 'False' 时,构建运行正常。然后,当我进入 Release Management Client 并创建一个版本时,一切正常,我的项目(一个 WebAPI)成功发布到我们的测试服务器。
一旦我将 'Release build' 属性 设置为 true(在构建定义中)并将新构建加入队列,构建就会失败。
我收到以下错误:
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.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.Func2.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)
构建模板包含一个 xcopy 步骤,这可能会导致 "The directory name is invalid",但我不明白为什么这个过程是手动的,而不是自动的。
非常欢迎任何正确方向的建议!
有时发布模板可以'lose'将其连接到构建定义中。要检查这一点,请打开发布模板并使用属性 link 重新建立与构建定义的连接。如果它有帮助,我有一个关于配置所有这些的 soup to nuts 博客 post 系列 - 索引页面 here.
确保您在构建代理计算机上安装了 RM 客户端。
我正在尝试将发布管理服务器配置为在 TFS 上的特定构建配置成功时部署到测试服务器。现在我有一个运行良好的构建定义,我使用构建过程模板 'ReleaseTfvcTemplate.12.xaml'.
发布管理服务器 (RMS) 中的 'Release Template' 设置为在生成时触发。
现在,当我将 Release 类别中的 'Release Build' 属性 设置为 'False' 时,构建运行正常。然后,当我进入 Release Management Client 并创建一个版本时,一切正常,我的项目(一个 WebAPI)成功发布到我们的测试服务器。
一旦我将 'Release build' 属性 设置为 true(在构建定义中)并将新构建加入队列,构建就会失败。
我收到以下错误:
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.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)
构建模板包含一个 xcopy 步骤,这可能会导致 "The directory name is invalid",但我不明白为什么这个过程是手动的,而不是自动的。
非常欢迎任何正确方向的建议!
有时发布模板可以'lose'将其连接到构建定义中。要检查这一点,请打开发布模板并使用属性 link 重新建立与构建定义的连接。如果它有帮助,我有一个关于配置所有这些的 soup to nuts 博客 post 系列 - 索引页面 here.
确保您在构建代理计算机上安装了 RM 客户端。