簡體   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