我们正在运行一个Team City构建服务器,该服务器已在本地执行此脚本,没有任何问题。但是,当我尝试手动运行此脚本时,我遇到以下问题:
Windows PowerShell
Copyright (C) 2012 Microsoft Corporation. All rights reserved.
PowerShell Community Extensions Imported.
PS C:\Users\user.domain> cd D:\pkg\platform-2b0c7e3f71f9-BUILD01; powershell.exe -noprofile -executionpolicy Bypass -file D:\pkg\platform-2b0c7e3f71f9-BUILD01\stage.ps1 production \\192.168.x.x\staging \\testserver.domain.com\staging
D:\pkg\platform-2b0c7e3f71f9-BUILD01
Start Staging: 12/15/2014 11:18:14
Verifying target environment configuration and staging targets
Copying source and environment switch
...
Verifying configuration files are valid XML files
Test-Xml : The 'Test-Xml' command was found in the module 'Pscx', but the module could not be loaded. For more information, run 'Import-Module Pscx'.
At D:\pkg\platform-2b0c7e3f71f9-BUILD01\stage.ps1:72 char:9
+ if (!(Test-Xml $file))
+ ~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Test-Xml:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CouldNotAutoloadMatchingModule
所以我看到PowerShell社区扩展正在进口(第4行),这让我想知道发生了什么。我正在运行脚本作为在Team City下运行它的完全相同的用户。我已经检查了构建步骤,我试图复制:
我无法想到我错过的任何内容(工作目录选项设置为脚本文件的目录)。任何想法将不胜感激......
答案 0 :(得分:1)
第4行加载Pscx,第5行使用-NoProfile选项打开一个新的PowerShell会话,因此在Powershell会话中加载Pscx的可能性不大。