我有Azsk在我的 azure devops 管道中实现。在一切正常运行并且我可以正常运行管道之前。我没有改变任何东西,但它给了我这个错误 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 正在运行的某种容器)中安装模块。
有人最近遇到过这个问题或者知道如何解决这个问题吗?
最佳答案
错误消息:“PackageManagement\Install-Package:无法处理参数“InstalledModuleInfo”的参数转换...”
如果您已在计算机中使用 Azure SDK 安装了 AzureRM PowerShell,它通常会安装在 Program Files 中。您可以运行以下命令来确认
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 session 中首先加载的模块版本。在这种情况下,为避免混淆,请关闭安装程序 PS session ,并在新的 PS session 中首先运行以下命令:
Import-Module AzSK
然后您可以运行一个或多个 AzSK 命令或其他 AzureRm 命令。 “导入模块”确保将正确版本的 AzureRM 加载到当前 session 中。
因此,如果您是托管代理,请尝试在 Azsk 任务之前添加 PowerShell 任务并运行上面的命令。
关于azure - 当 azure devops 安装模块时,无法安装模块 Azsk CI/CD 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53778162/