Deployment Azure启动任务,等待所有其他任务完成

Deployment Azure启动任务,等待所有其他任务完成,deployment,azure,startup,Deployment,Azure,Startup,我的webrole有一个启动任务,从blob下载一些可执行文件,然后继续安装 从.cmd文件中,我启动一个下载文件的powershell脚本,然后从.cmd文件启动该文件 如果在发布完成后通过RDP手动运行该脚本,则该脚本工作正常 但是,当作为启动脚本运行时,它有时(通常)会在不同点失败 taskType设置为background 上次,错误是命令PowerShell不存在 此外,在运行PS脚本之前,我使用了powershell-command set executionpolicy unres

我的webrole有一个启动任务,从blob下载一些可执行文件,然后继续安装

从.cmd文件中,我启动一个下载文件的powershell脚本,然后从.cmd文件启动该文件

如果在发布完成后通过RDP手动运行该脚本,则该脚本工作正常

但是,当作为启动脚本运行时,它有时(通常)会在不同点失败

taskType
设置为
background

上次,错误是命令
PowerShell
不存在

此外,在运行PS脚本之前,我使用了
powershell-command set executionpolicy unrestricted
,但我了解到其他任务可能会重置此设置并使我的设置失败

一团糟

因此,我认为,如果我可以在开始我的任务之前等待所有其他任务的执行,这将消除此类问题

我想我可以检查某个进程是否正在运行并等待它完成,但我不知道该检查哪个进程

或许还有另一种解决办法

~编辑~

我了解到有关powershell不存在的错误可能是由于批处理文件在visual studio中保存为UTF-8引起的。我用记事本++从头开始重新编写它,并确保它另存为ANSI。那么,同样的错误。全文如下:

“PowerShell”未被识别为内部或外部命令, 可操作的程序或批处理文件


同样,该脚本可以从远程桌面的命令行完美运行。

可以在脚本末尾设置完成所需的环境变量,然后在等待依赖项的脚本中,循环直到环境变量设置完毕,然后启动其活动


您还可以从单个powershell脚本运行所有内容,并在installer语句上使用“-asjob”开关,使用“wait job”cmdlet阻止,直到任务完成,然后继续。Powershell还提供了一个“?!”运算符,确保正确执行最后一条语句。

可以在需要完成的脚本末尾设置一个环境变量,然后在等待依赖项的脚本中,循环直到设置了环境变量,然后启动其活动


您还可以从单个powershell脚本运行所有内容,并在installer语句上使用“-asjob”开关,使用“wait job”cmdlet阻止,直到任务完成,然后继续。Powershell还提供了一个“?!”确保正确执行最后一条语句的运算符。

这可能是由编码问题引起的。如中所述,您应该以ASCII格式保存文件,以确保脚本的正确解释

从链接的答案中:

使用VS 2012 Ultimate打开您的whatever.cmd文件。单击文件->将whatever.cmd另存为->对话框中[Save]按钮旁边有一个小箭头。它将显示一个菜单,该菜单将具有“使用编码保存”选项

选择它。现在从可用编码列表中选择“US-ASCII代码页20127”


这可能是由编码问题引起的。如中所述,您应该以ASCII格式保存文件,以确保脚本的正确解释

从链接的答案中:

使用VS 2012 Ultimate打开您的whatever.cmd文件。单击文件->将whatever.cmd另存为->对话框中[Save]按钮旁边有一个小箭头。它将显示一个菜单,该菜单将具有“使用编码保存”选项

选择它。现在从可用编码列表中选择“US-ASCII代码页20127”


能否尝试将
任务类型从简单更改为背景?RDP是通过后台启用的,这可能会导致您出现此问题。
taskType
已设置为
background
,我忘了提到它。您正在安装什么?它是否为IIS添加了任何功能?有一个名为IISConfigurator.exe的过程可以引导IIS,但在您的问题中,我没有足够的上下文来解释您试图通过上述安装程序实现什么,我正在安装matlab编译器运行时。我没有把它写在问题中,因为它不是matlab的问题。我的脚本中经常失败的部分是安装程序的下载。你能尝试将
taskType
从简单更改为后台吗?RDP是通过后台启用的,这可能会导致您出现此问题。
taskType
已设置为
background
,我忘了提到它。您正在安装什么?它是否为IIS添加了任何功能?有一个名为IISConfigurator.exe的过程可以引导IIS,但在您的问题中,我没有足够的上下文来解释您试图通过上述安装程序实现什么,我正在安装matlab编译器运行时。我没有把它写在问题中,因为它不是matlab的问题。我的脚本中经常失败的部分是安装程序的下载。问题是我无法控制其他任务。例如,远程桌面的设置。这是MS代码。问题是我无法控制其他任务。例如,远程桌面的设置。这是MS代码。