azure devops正在安装模块时,无法安装模块Azsk CI / CD管道

时间:2018-12-14 10:45:17

标签: azure azure-devops

我在我的azure devops管道中实现了Azsk。在一切正常之前,我可以正常运行管道。我没有做任何更改,但这给了我这个错误atm

2018-12-14T10:41:12.7861566Z Installing Module AzSK...
2018-12-14T10:41:58.9483761Z ##[error]Cannot process argument transformation on parameter 'InstalledModuleInfo'. Cannot convert the "System.Object[]" value of type "System.Object[]" to type "System.Management.Automation.PSModuleInfo".
2018-12-14T10:41:58.9850394Z ##[section]Finishing: AzSK_SVTs 

Google让我明白了:https://github.com/Azure/azure-cli/issues/2357 但这将更新我本地计算机上的模块,而问题是在我的管道中安装了该模块(运行azure devops的某种容器)。

最近有任何人遇到此问题,或者不知道如何解决此问题?

1 个答案:

答案 0 :(得分:1)

official Azsk GitHub:

错误消息:“ PackageManagement \ Install-Package:无法处理参数'InstalledModuleInfo'上的参数转换...”

如果已在计算机中使用Azure SDK安装了AzureRM PowerShell,则通常会在程序文件中安装它。您可以运行以下命令进行确认

Get-Module -Name AzureRM* -ListAvailable 

在这种情况下,您需要从程序文件中完全删除通过Azure SDK安装的Azure PowerShell模块。如果需要,您也可以备份。 AzSK还需要AzureRM模块。但是它将从PSGallery而不是从Azure SDK下载。从PS Gallery下载AzureRM模块将与通过Azure SDK安装的AzureRM模块冲突。清理后,如果再次运行以下命令,则默认情况下它将将AzureRM 5.2.0版本提取到当前用户范围中,而不是在程序文件中。

Install-Module AzSK -Scope CurrentUser -AllowClobber 

如果仍然需要使用其他版本的AzureRm(已删除),则可以使用以下命令从PS Gallery安装它:

Install-Module AzureRM -Scope CurrentUser -AllowClobber -RequiredVersion <versionNumber e.g. “3.8.0” >

注意:如果PS版本中没有“ -AllowClobber”选项,则将其替换为“ -Force”

如果碰巧有多个版本的AzureRM,则取决于在PS会话中首先加载哪个版本的模块。在这种情况下,为避免混淆,请关闭安装程序PS会话,并在新的PS会话中首先运行以下命令:

Import-Module AzSK

然后,您可以运行一个或多个AzSK命令或其他AzureRm命令。 “导入模块”确保将正确版本的AzureRM加载到当前会话中。

因此,在您是托管代理的情况下,请尝试在Azsk任务之前添加PowerShell任务,然后运行上面的命令。