(复制自 https://github.com/MicrosoftDocs/azure-devops-docs/issues/11014)
当运行一个我看不到的命令(如文件附件)时,我怎么知道它是否成功?
我有一个客户使用我编写的使用附件的扩展程序,但它在某些情况下停止工作,我不知道为什么。我可以说在这些情况下没有附件,因为查找它们的服务器端在回调中返回一个空列表,这意味着附件由于某种原因未成功或由于某种原因读取未成功。
这是我用来创建附件的代码部分(代理端):
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const path = require("path");
const os = require("os");
...
let tempPath = path.join(tempDir, "data.json");
if (fs.existsSync(tempPath)) {
console.log("temp file already exists: " + tempPath);
let fileContent = fs.readFileSync(tempPath);
console.log(fileContent.toString());
}
console.log("creating temp file: " + tempPath);
let json = JSON.stringify({
ID: someId,
NAME: someName
});
console.log("writing this content to temp file: " + json)
fs.writeFileSync(tempPath, json);
console.log("##vso[task.addattachment type=MyDataJson;name=MY_DATA;]" + tempPath);
这是我用来阅读它的代码的一部分(服务器端):
...
var taskClient = DT_Client.getClient();
taskClient.getPlanAttachments(context.project.id, "build", build.orchestrationPlan.planId, "MyDataJson")
.then((taskAttachments) => {
console.log("taskClient.getPlanAttachments result: enter.");
console.log(" task attachments: " + taskAttachments.length);
...
在浏览器控制台中我看到:
taskClient.getPlanAttachment result: enter.
task attachments: 0
知道我缺少什么吗?同样,大多数情况下它运行良好,我无法重现它,但它经常发生在客户身上。