我有一个 API,可以在我的服务器中执行 .exe 文件(SelfHosted),为此,我必须终止任务管理器中的进程并再次启动它。
我想通过 Azure Pipeline 执行此操作,但我遇到了麻烦,因为该过程无法启动,但 Azure Pipeline 中的一切似乎都很好。
执行的命令:
我已经尝试过:
1 - 使用此命令,进程继续运行,但 Azure Pipeline 中的步骤是无休止的
cd C:\PATH_TO_FOLDER
MY_FILE.exe
2 - 使用此命令没有发生任何事情
call start /b C:\PATH_TO_FOLDER\MY_FILE.exe
3 - 使用此命令,进程启动,但一旦启动它就会关闭。
start cmd /c "C:\PATH_TO_FOLDER\MY_FILE.exe"
这是我的步骤。顺便说一句,我使用 IIS 部署,因为我没有找到如何从我的工件中获取 zip 并将其解压缩到我的 API 运行的路径中:
Azure Pipeline 发布步骤:
使用您共享的命令时,我可以重现相同的问题。要在 Azure DevOps 管道完成后保持
.exe
运行,您可以创建计划任务来启动 .exe
。具体方法如下:
创建计划任务
使用 PowerShell 脚本创建启动您的
.exe
的计划任务。该任务可以配置为在特定用户帐户下运行并以最高权限启动应用程序。 在本地计算机上运行此脚本。
$action = New-ScheduledTaskAction -Execute "C:\PATH_TO_FOLDER\MY_FILE.exe"
$trigger = New-ScheduledTaskTrigger -AtStartup
$principal = New-ScheduledTaskPrincipal -UserId "yourlocaluser" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -Action $action -Trigger $trigger -Principal $principal -TaskName "StartApp" -Description "Starts the application at startup"