由发布代理运行的Powershell脚本会出现异常,因为缺少.net标准2.0。

问题描述 投票:-1回答:1

我尝试运行该脚本

Backup-SqlDatabase -ServerInstance "myserver"  -Database "mydd"  -BackupFile "\\mypath.bak"

当我登录到发布目标并交互式地执行脚本时,它可以工作。

如果我把它变成发布管道中的PowerShell任务,我得到的异常是

无法加载文件或程序集 "netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 "或其依赖项之一。找不到指定的模块。

在 C:\Program Files/WindowsPowerShell/Modules/SqlServer/21.1.18221/SqlServer.psm1:61 Zeichen:25 + ... (:) [Import-Module], FileNotFoundException + FullyQualifiedErrorId : System.IO.FileNotFoundException,Microsoft.PowerShell.Commands.ImportModuleCommand 进程完成,退出代码为0,有1个错误写入错误流。

我还以发布代理运行的用户身份运行PowerShell控制台,结果正常。我如何进一步调试这个问题?

我有预置的发布代理和构建代理。

azure-devops azure-pipelines-release-pipeline
1个回答
0
投票

我还以发布代理运行的用户身份运行PowerShell控制台,结果正常。我如何进一步调试这个问题?

根据你所做的故障排除,似乎是以下几个方面的不同之处 powershell 任务和私人代理的 powershell 是造成这个问题的原因。

当我使用powershell任务时,我们可以发现它不能使用来自priavte代理的powershell。

enter image description here

作为变通方法,你可以尝试使用命令行任务调用私有代理的powershell,比如:

C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass .\Test.ps1 

希望能帮到你

© www.soinside.com 2019 - 2024. All rights reserved.