我正在尝试从自定义的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作为源代码控制):
从日志文件中,我们可以看到带有批处理文件的目录的测试没有问题。然后,相同的日志文件显示错误:
有人知道如何解决这个问题吗?
我已经看到其他线程讨论"目录名无效"在其他上下文中出现问题,最接近的匹配是指在没有足够权限的情况下调用cmd.exe的事实。
如果我们在这里查看类似问题的症状,那么如何从TFS构建过程调用cmd.exe而不会出现错误?
目前,如果我查看cmd.exe的属性,这就是我所拥有的:
答案 0 :(得分:0)
回答我关于如何从TFS构建过程调用cmd.exe的问题......
我发现我可以在自定义构建模板中使用 InvokeProcess 活动而不是RunScript。 specific/rare cases文章有所帮助。
这是我的新自定义模板xaml(包括InvokeProcess的错误处理): This
此外,根据文章添加了变量ExitCode(Int32)和ErrorMessage(String),InvokeProcess活动的属性现在如下所示:
请注意InvokeProcess的Arguments属性中的前导“/ c”术语。没有它,活动将运行并且不返回任何错误,但脚本将不会被执行。
希望这可以帮助有类似问题的人。