【问题标题】:Import-Module -Name MyModule.psm1 from Azure Devops Release Pipeline at my banchImport-Module -Name MyModule.psm1 from Azure Devops Release Pipeline at my banch
【发布时间】:2021-11-03 19:12:22
【问题描述】:

我喜欢从我的管道脚本中解耦函数并编写一个模块。到目前为止一切顺利。

现在我需要在运行时从当前分支(不是主分支)导入该模块。

Import-Module -Name   "$($ENV:AGENT_RELEASEDIRECTORY)\$($ENV:RELEASE_PRIMARYARTIFACTSOURCEALIAS)\scripts\MyModule.psm1" -Force

输出

2021-09-06T18:07:41.8185223Z VERBOSE: Loading module from path 'D:\a\r1\a\_acr\scripts\MyModule.psm1'.
2021-09-06T18:07:42.0458821Z ##[error]Windows PowerShell is in NonInteractive mode. Read and Prompt functionality is not available.
2021-09-06T18:07:42.1872487Z ##[error]PowerShell exited with code '1'.

有什么想法吗?

【问题讨论】:

    标签: powershell azure-devops


    【解决方案1】:

    在 Azure DevOps 管道中,PowerShell 会话处于非交互模式,这意味着如果您定义一些用户交互所需的函数并在 MyModule.psm1 中调用它们,则会导致错误。

    所以要成功导入,请确保功能不需要用户交互,如果您的要求需要在 Azure DevOps 管道中进行用户交互,恐怕您不能这样做,因为它不受支持。

    【讨论】:

    • 我在该模块内的许多函数中确实有一些 CmdletBinding,但我执行它们的方式是使用 -confirm:$false 参数。我已经删除了它们并忽略了PSScriptAnalyzer 中的PSShouldProcess 规则。现在工作正常。谢谢!
    猜你喜欢
    • 2022-12-02
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 2021-06-09
    • 1970-01-01
    • 2023-02-25
    • 1970-01-01
    相关资源
    最近更新 更多