AzurePowerShell@5任务与Az.Resources 6.16.0兼容问题求助
解决AzurePowerShell@5任务Az模块版本冲突的办法
方案1:自定义路径装模块,保留登录状态
- 先创建临时目录存放新模块,避开系统默认路径:
$modulePath = Join-Path $env:Temp "AzCustomModules" New-Item $modulePath -ItemType Directory -Force | Out-Null - 将需要的Az.Accounts 2.16.0和Az.Resources 6.16.0安装到该目录,跳过发布者检查避免报错:
Install-Module Az.Accounts -RequiredVersion 2.16.0 -Path $modulePath -SkipPublisherCheck -Force -AllowClobber Install-Module Az.Resources -RequiredVersion 6.16.0 -Path $modulePath -SkipPublisherCheck -Force -AllowClobber - 把自定义目录加到模块搜索路径最前端,确保优先加载新模块:
$env:PSModulePath = "$modulePath;$env:PSModulePath" - 强制重新加载新模块:
Import-Module Az.Accounts -RequiredVersion 2.16.0 -Force Import-Module Az.Resources -RequiredVersion 6.16.0 -Force - 验证模块版本和登录状态,确认无误后执行目标命令:
Get-Module Az.Accounts, Az.Resources Get-AzContext # 确认登录状态未丢失
方案2:直接指定AzurePowerShell@5的Az版本
AzurePowerShell@5任务支持通过AzVersion参数选择预安装的Az合集版本,你可以查找托管代理上包含Az.Accounts 2.16.0和Az.Resources 6.16.0的Az版本(比如Az 10.x系列的对应版本),直接在任务配置中选择该版本即可,无需手动安装模块,也不会出现程序集锁定问题。
方案3:使用自托管代理
如果托管代理的预安装版本无法满足需求,可以搭建自托管代理,预先安装好所需版本的Az.Accounts和Az.Resources模块,流水线任务直接使用该自托管代理执行,从根源上规避版本冲突。
内容的提问来源于stack exchange,提问作者fredcicles
相关产品推荐
相关产品推荐

