"目录名称无效"自定义TFS构建定义

时间:2015-08-19 12:53:50

标签: batch-file tfs cmd tfsbuild

我正在尝试从自定义的TFS构建定义中运行(空)批处理文件,但每次进程都按照"运行脚本"建立活动,我得到一个"目录名无效"错误

我们在Windows Server 2008 R2 Standard上使用TFS 2013 Update 4,我在开发机器上从Win 8.1 Pro运行Visual Studio 2013。

有问题的批处理文件位于" C:\ Builds \ SP_Base"在TFS服务器上(如我自定义构建模板中的测试条件所示。这里是模板本身(基于GitTemplate.12.xaml,因为我们使用Git作为源代码控制):

enter image description here

这是我们"运行脚本"的定义。行动: enter image description here

从日志文件中,我们可以看到带有批处理文件的目录的测试没有问题。然后,相同的日志文件显示错误:

enter image description here

有人知道如何解决这个问题吗?

我已经看到其他线程讨论"目录名无效"在其他上下文中出现问题,最接近的匹配是指在没有足够权限的情况下调用cmd.exe的事实。

如果我们在这里查看类似问题的症状,那么如何从TFS构建过程调用cmd.exe而不会出现错误

目前,如果我查看cmd.exe的属性,这就是我所拥有的:

enter image description here

1 个答案:

答案 0 :(得分:0)

回答我关于如何从TFS构建过程调用cmd.exe的问题......

我发现我可以在自定义构建模板中使用 InvokeProcess 活动而不是RunScript。 specific/rare cases文章有所帮助。

这是我的新自定义模板xaml(包括InvokeProcess的错误处理): This

此外,根据文章添加了变量ExitCode(Int32)和ErrorMessage(String),InvokeProcess活动的属性现在如下所示:

enter image description here

注意InvokeProcess的Arguments属性中的前导“/ c”术语。没有它,活动将运行并且不返回任何错误,但脚本将不会被执行。

希望这可以帮助有类似问题的人。