2017-10-20 129 views
0

我已經經歷了幾個例子,但儘管我努力,我每次執行我的任務realease它無法找到該SDK:VSTS擴展找不到SDK

[錯誤] System.Management。 Automation.CmdletInvocationException:術語'Trace-VstsEnteringInvocation'不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱。檢查名稱的拼寫,或者如果包含路徑,請驗證路徑是否正確,然後重試。

我已經在任務根目錄下根據此post的建議嘗試了SDK。我也嘗試了從路徑中刪除的版本號。

|-- task root 
    |----- ps_modules 
    |----- VstsTaskSDK 
     |----- 0.10.0 
      |------ <corresponding sdk files, including VstsTaskSdk.psd1> 
    |----- deploy.ps1 
    |----- icon.png 
    |----- task.json 

我也與上述任務的SDK文件夾一個級別嘗試它,因爲我已經看到了工作。再次,嘗試與版本號存在和刪除。

|-- root 
    |-- task root  
     |----- deploy.ps1 
     |----- icon.png 
     |----- task.json 
    |-- sdk  
     |----- ps_modules 
     |----- VstsTaskSDK 
     |----- 0.10.0 
      |------ <corresponding sdk files, including VstsTaskSdk.psd1> 

然後我試圖與文件節在VSS-extension.json文件,包括SDK或SDK/ps_modules/VstsTaskSdk等15個排列我已經試過,沒有成功亂搞。

當我創建我正在下面從擴展根CMD(不知道相關的):在我失去了我

tfx extension create --manifest-globs .\vss-extension.json 

任何想法?

UPDATE

我一直沒能解決這個讓我簡化我的任務用於測試目的。我的任務現在只包含sdk;沒有參數,只是兩個cmdlet在我的PowerShell:

Trace-VstsEnteringInvocation $MyInvocation 
Trace-VstsLeavingInvocation $MyInvocation 

我Task.json:

{ 
    "id": "<myguid>", 
    "name": "VstsSdkTest", 
    "friendlyName": "VstsSdkTest", 
    "description": "A Test Task to troubleshoot vststasksdk issue", 
    "helpMarkDown": "", 
    "category": "Deploy", 
    "visibility": [ 
    "Deploy" 
    ], 
    "instanceNameFormat": "VstsSdkTest", 
    "author": "<myAuthor>", 
    "version": { 
    "Major": 0, 
    "Minor": 1, 
    "Patch": 1 
    }, 
    "execution": { 
    "Powershell3": { 
     "target": "VstsTaskSDKTest.ps1" 
    } 
    } 
} 

我的文件夾結構如下所示:

|-- VstsSdkTest 
    |----- VstsTaskSDKTest.ps1 
    |----- icon.png 
    |----- task.json 
    |----- ps_modules  
    |----- VstsTaskSDK 
     |----- <corresponding sdk files, including VstsTaskSdk.psd1> 

即使有這種簡化的任務每它執行的時間(在託管代理上)它無法找到SDK。它似乎在與任務版本號相關的任務下的文件夾中查找SDK。

2017-10-24T20:39:08.9599715Z ##[error]File not found: 'd:\a\_tasks\VstsSdkTest_<myGuid>\0.1.1\ps_modules\VstsTaskSdk\VstsTaskSdk.psd1' 
+0

根據您的回答(刪除),您是否在批准範圍更改後解決此問題? –

+0

不,我認爲問題解決了,所以我發佈了答案。進一步調查發現問題仍然存在,所以我刪除了它。 –

+0

您可以爲所有文件夾結構的文件打包並在此共享嗎? –

回答

0

您使用PowerShell和調用SDK命令,所以使用PowerShell3代替(不PowerShell的)。

task.json文件的部分代碼:

"execution": { 
    "PowerShell3": { 
     "target": "deploy.ps1", 
     "argumentFormat": "" 
    } 
+0

我試着把這個添加到我的任務中,json,沒有解決。 –

+0

請檢查我的更新。我試圖簡化我的任務,但它仍然無法找到SDK。 –

+0

@JustinHolbrook這些文件需要位於VstsTaskSDK文件夾中。因此將文件複製到VstsTaskSDK文件夾(刪除0.10.0)。更新後,您需要更新構建定義才能使用新版本的任務。 (您可以檢查構建日誌中的任務版本是否使用最新版本的任務) –

1

問題是由於我不理解我,每當我提出的vststasksdk文件夾來更新task.json文件的版本號。我認爲我只需要更新vss-extension.json版本,因爲它包含文件節。並非如此。爲我工作的最終文件夾結構是將sdk存儲在任務根目錄中的文件夾中。

|-- VstsSdkTest 
    |----- VstsTaskSDKTest.ps1 
    |----- icon.png 
    |----- task.json 
    |----- ps_modules  
    |----- VstsTaskSDK 
     |----- <corresponding sdk files, including VstsTaskSdk.psd1>