繁体   English   中英

TFS发布构建Powershell脚本看不到导入模块的命令

[英]TFS post build powershell script not seeing commands from imported module

我们有一个使用自定义模板的TFS构建过程。 在成功创建crm解决方案文件的情况下,构建可以正常工作。 然后,我们尝试在构建后的版本上运行Powershell脚本。 该脚本导入一个模块。 但是模块中的命令并未公开。 每当我们尝试调用命令时,都会出现错误。 沿线

术语“ Get-XrmSolution”不被视为cmdlet,函数,脚本文件或可运行程序的名称。

在该模块中使用哪个命令都没有关系,我们会得到相同的错误。

为了进行故障排除,我们已经以构建帐户的身份登录到构建服务器,并且可以成功运行我们尝试运行的脚本。

将更多输出输出到脚本中以进行故障排除...

Get-Module列出Xrm.Framework.CI.PowerShell。 很好

Get-Command -Module "Xrm.Framework.CI.PowerShell"返回任何内容。 在控制台中,列出了许多命令。

我们需要运行powershell post build脚本来使导入模块的内容可见吗?

IIRC,您必须显式导入模块,而无需假设已在用户配置文件或脚本路径上加载了该模块。 假设Module1.psm1与脚本位于同一文件夹中,请使用类似

Import-Module (Join-Path (Split-Path -Parent $MyInvocation.MyCommand.Definition) 'Module1.psm1')

请注意由MSBuild调用的PowerShell的细节,以及由Visual Studio启动的MSBuild的细节。 某些模块只能在32位或64位PowerShell中运行,而不能同时在两者中运行。 您要确保启动正确的PowerShell版本。

我有同样的问题。

该模块已加载到“ C:\\ Program Files \\ WindowsPowerShell \\ Modules”文件夹中(64位)。

当我以用户身份登录时,一切似乎都很好,但是在TFS构建期间失败了。

解决方案:我必须在PowerShell 64位中卸载该模块,然后在PowerShell 32位中重新安装。

然后将该模块安装在“ C:\\ Program Files(x86)\\ WindowsPowerShell \\ Modules”文件夹中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM