无法在 DevOps Server 中构建 VB6 应用程序

Unable to build VB6 application in DevOps Server

我的要求是能够通过 Microsoft Azure DevOps Server 2019 构建 VB6 应用程序。为此,我在 Microsoft Server 2019 上安装了 VB6 Enterprise IDE,它运行良好。对于构建,我选择使用 Powershell 脚本,目前非常简单。

$vb6 = "C:\Program Files (x86)\Microsoft Visual Studio\VB98\Vb6.exe"
$prj = "C:\proj\Project1.vbp"
$outdir = "C:\proj\out"
$out = "C:\proj\out\log.log"

New-Item -ItemType Directory -Force -Path C:\proj\out
& $vb6 /make $prj /out $out /outdir $outdir

脚本本身 运行 无论我通过 Powershell 运行 使用什么项目文件夹 window。当它通过 DevOps 运行 时,它执行时没有报告任何问题,目录已创建,但 VB6 部分似乎没有执行。为什么会发生这种情况,我有哪些选择可以让它发挥作用?

您是否尝试过在 $vb6 的开头和结尾添加额外的 chr(34)... 我在想,因为我们将命令行构建为一个字符串,通常带有 space 的路径需要用引号分隔...

感觉到我了吗?...

最后,我制作了一个没有这一步的管道,还有一些需要每天同时发生的管道。管道完成后,我 运行 Windows 使用此脚本(带有构建文件夹)的计划任务,我没有遇到任何问题。这不是问题的真正 1/1 解决方案,但它有效。

在我的 powershell 脚本中,我更幸运 运行 vb6.exe 使用“Start-Process”cmdlet,我发现使用调用运算符 (&) 很挑剔(它一直自从我写了这段构建脚本以来,我不记得到底是什么问题了)

示例-

$projectFile = 'C:\Proj\ProjFile.vbp'
$binaryDir = 'C:\Binaries\Proj'
$logFile = 'C:\Proj\BuildLog.log'
$vb6EXE = 'C:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE'
$paramArr = '/MAKE', "`"$projectFile`"", "/outdir `"$binaryDir`"", "/out `"$logFile`""  

Start-Process -FilePath $vb6EXE -ArgumentList $paramArr -NoNewWindow -Wait