azure - azure devops 安装模块时无法安装模块 Azsk CI / CD 管道
问题描述
我在我的 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
谷歌让我这样做: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
如果是这种情况,则需要从 Program Files 中完全删除通过 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” >
注意:如果“-AllowClobber”选项在您的 PS 版本中不可用,则将其替换为“-Force”
如果您碰巧有多个版本的 AzureRM,那么这取决于在 PS 会话中首先加载的模块版本。在这种情况下,为避免混淆,请关闭安装程序 PS 会话并在新的 PS 会话中首先运行以下命令:
Import-Module AzSK
然后,您可以运行一个或多个 AzSK 命令或其他 AzureRm 命令。“导入模块”确保将正确版本的 AzureRM 加载到当前会话中。
因此,如果您是托管代理,请尝试在 Azsk 任务之前添加 PowerShell 任务并运行上面的命令。
推荐阅读
- amazon-emr - 如何为 EMR 的引导操作查找 stderr/stdout 日志
- node.js - Nodejs 无法使用 request-promise 请求 url
- python - 类和静态方法
- c# - 在dotnet core中批量使用Parallel.For
- python - Scikit-Learn 中的累积分布函数(CDF)?
- pyqt5 - 使用 myVar = '页面名称' 更改 QStackedWidget 中的页面
- haskell - 在堆栈清理之前间歇性“未构建应用程序”
- r - R:如何将光栅图像/矩阵值转换为系列以获得多个光栅图像的箱线图?
- mysql - 我需要在 Java 桌面应用程序中将孟加拉语插入 Mysql 数据库
- c++ - 二叉树中的前序后继