in src/projectHelper.ts [19:58]
export async function buildProjects(projects: string[], commandObserver: CommandObserver, cancelToken?: vscode.CancellationToken): Promise<BuildResult[]> {
var buildResult = new Array<BuildResult>();
if (commandObserver.buildInProgress) {
vscode.window.showErrorMessage(localize('extension.existingBuildInProgressMessage', 'There is a build already running, please cancel the build before starting a new one'));
return Promise.resolve(buildResult);
}
try {
var successProjectCount = 0;
var failedProjectCount = 0;
commandObserver.buildInProgress = true;
commandObserver.resetOutputChannel();
vscode.workspace.saveAll();
let unsupportedProjects = await validateProjectSDK(projects, commandObserver);
if (unsupportedProjects.length > 0) {
projects = projects.filter(p => unsupportedProjects.indexOf(p) < 0);
unsupportedProjects.map(p => buildResult.push({ project: p, status: buildStatus.Skipped }));
}
for (let project of projects) {
if (cancelToken && cancelToken.isCancellationRequested) {
return;
}
await dotnetBuild(project, commandObserver, cancelToken).then(() => {
successProjectCount++;
buildResult.push({ project: project, status: buildStatus.Success })
}, () => {
failedProjectCount++;
buildResult.push({ project: project, status: buildStatus.Failure })
});
}
commandObserver.logToOutputChannel(localize('extension.buildSummaryMessage', '======== Build: {0} succeeses or up-to-date, {1} failed, {2} skipped ========', successProjectCount, failedProjectCount, unsupportedProjects.length));
} catch (err) {
vscode.window.showErrorMessage(err);
}
finally {
commandObserver.buildInProgress = false;
}
return Promise.resolve(buildResult);
}