internal IEnumerable <ITaskItem> ProcessWorkloadManifestFile(string workloadManifestJsonPath) { WorkloadManifest manifest = WorkloadManifestReader.ReadWorkloadManifest(Path.GetFileNameWithoutExtension(workloadManifestJsonPath), File.OpenRead(workloadManifestJsonPath)); List <TaskItem> swixProjects = new(); foreach (WorkloadDefinition workloadDefinition in manifest.Workloads.Values) { if ((workloadDefinition.Platforms?.Count > 0) && (!workloadDefinition.Platforms.Any(p => p.StartsWith("win")))) { Log?.LogMessage(MessageImportance.High, $"{workloadDefinition.Id} platforms does not support Windows and will be skipped ({string.Join(", ", workloadDefinition.Platforms)})."); continue; } // Each workload maps to a Visual Studio component. VisualStudioComponent component = VisualStudioComponent.Create(Log, manifest, workloadDefinition, ComponentVersions, ShortNames, ComponentResources, MissingPacks); // If there are no dependencies, regardless of whether we are generating MSIs, we'll report an // error as we'd produce invalid SWIX. if (!component.HasDependencies) { Log?.LogError($"Visual Studio components '{component.Name}' must have at least one dependency."); } string vsPayloadRelativePath = $"{component.Name},version={component.Version}\\_package.json"; CheckRelativePayloadPath(vsPayloadRelativePath); swixProjects.Add(component.Generate(Path.Combine(SourceDirectory, $"{workloadDefinition.Id}.{manifest.Version}.0"))); } return(swixProjects); }
internal IEnumerable <ITaskItem> ProcessWorkloadManifestFile(string workloadManifestJsonPath) { WorkloadManifest manifest = WorkloadManifestReader.ReadWorkloadManifest(Path.GetFileNameWithoutExtension(workloadManifestJsonPath), File.OpenRead(workloadManifestJsonPath)); List <TaskItem> swixProjects = new(); foreach (WorkloadDefinition workloadDefinition in manifest.Workloads.Values) { // Each workload maps to a Visual Studio component. VisualStudioComponent component = VisualStudioComponent.Create(Log, manifest, workloadDefinition, ComponentVersion, ShortNames, ComponentResources, MissingPacks); // If there are no dependencies, regardless of whether we are generating MSIs, we'll report an // error as we'd produce invalid SWIX. if (!component.HasDependencies) { Log?.LogError($"Visual Studio components '{component.Name}' must have at least one dependency."); } swixProjects.Add(component.Generate(Path.Combine(SourceDirectory, $"{workloadDefinition.Id}.{manifest.Version}.0"))); } return(swixProjects); }