Vb6 Jenkins管道:构建步骤不同时运行?

Vb6 Jenkins管道:构建步骤不同时运行?,vb6,jenkins-pipeline,Vb6,Jenkins Pipeline,我的詹金斯管道有问题。 问题是,似乎其中一个步骤与另一个步骤并行运行(并非有意): 我有点像: ... step("build"){ bat [Visual Basic 6 compile command - vb6.exe file.vbp /outdir my/directory] if(fileExists("my/directory/output.dll"){ println "SUCCESS" }else{ error("error") } ...

我的詹金斯管道有问题。 问题是,似乎其中一个步骤与另一个步骤并行运行(并非有意):

我有点像:

...
step("build"){
  bat [Visual Basic 6 compile command - vb6.exe file.vbp /outdir my/directory]
  if(fileExists("my/directory/output.dll"){
    println "SUCCESS"
  }else{
    error("error")
  }
  ...
}
好的,问题是:在编译命令写入文件之前,它会检查文件是否存在。。。如果我将sleep 10放在条件之前,它总是运行正常(目前),但显然,我不希望在我的管道中有sleep命令


我不知道我是否可以更好地控制操作系统的执行顺序,或者错误是否在于vb6.exe,它创建了一个线程来写入输出,然后主线程在写入输出之前返回成功。。。这有意义吗?有人知道我如何解决这个问题吗?

我的解决方案是进行VB6编译步骤

这是我在本地计算机上工作时运行的:

cmd /c VB6.exe /make someproject.vbp

这也是作者(我是作者)所使用的方法。看

我不知道VB6,但编译器可能会这么做?一种选择是使用该步骤,这样它对时间的依赖性就小了一点-
等待{fileExists(“my/directory/output.dll”)}
有时我们会遇到Windows文件缓存问题。但可能正如建议的那样,等待步骤在这种情况下也会有所帮助。@mkobit首先,感谢您的回答!是的,这可能行得通,但如果编译失败的话,这将是一个问题。如果发生这种情况,.dll将不会被创建,它将永远不会离开
waitUntil{…}
循环。VB6.exe不会返回错误代码(只有日志文件可以告诉我在生成过程中是否有错误),因此我无法执行类似于
的操作,如果(!error)等待到{…}
。而且,我也不知道为什么,但它没有生成日志文件(是的,甚至在命令中添加了
/out log/dir/
)。