VSTS扩展找不到SDK

问题描述:

我已经经历了几个例子,但尽管我努力,我每次执行我的任务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

您可以为所有文件夹结构的文件打包并在此共享吗? –

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

task.json文件的部分代码:

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

我试着把这个添加到我的任务中,json,没有解决。 –

+0

请检查我的更新。我试图简化我的任务,但它仍然无法找到SDK。 –

+0

@JustinHol*这些文件需要位于VstsTaskSDK文件夹中。因此将文件复制到VstsTaskSDK文件夹(删除0.10.0)。更新后,您需要更新构建定义才能使用新版本的任务。 (您可以检查构建日志中的任务版本是否使用最新版本的任务) –

问题是由于我不理解我,每当我提出的vststasksdk文件夹来更新task.json文件的版本号。我认为我只需要更新vss-extension.json版本,因为它包含文件节。并非如此。为我工作的最终文件夹结构是将sdk存储在任务根目录中的文件夹中。

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