public static IEnumerable <FabricServiceReference> Get(IEnumerable <ITaskItem> projectReferences, IEnumerable <ITaskItem> serviceProjectReferences) { if (serviceProjectReferences == null) { serviceProjectReferences = Enumerable.Empty <ITaskItem>(); } if (projectReferences == null) { projectReferences = Enumerable.Empty <ITaskItem>(); } return(projectReferences .Select(p => new { projectReference = p, servicereference = serviceProjectReferences.FirstOrDefault(rr => rr.ItemSpec == p.GetMetadata("OriginalProjectReferenceItemSpec")), Manifest = FabricSerializers.ServiceManifestFromFile(Path.Combine(Path.GetDirectoryName(p.GetMetadata("MSBuildSourceProjectFile")), "PackageRoot", "ServiceManifest.xml")) }) .Select(refs => new FabricServiceReference { Targetpath = refs.projectReference.ItemSpec, ProjectPath = refs.projectReference.GetMetadata("MSBuildSourceProjectFile"), ProjectDir = Path.GetDirectoryName(refs.projectReference.GetMetadata("MSBuildSourceProjectFile")), ServiceManifestName = refs.servicereference?.GetMetadata("ServiceManifestName") ?? FabricSerializers.ServiceManifestFromFile(Path.Combine(Path.GetDirectoryName(refs.projectReference.GetMetadata("MSBuildSourceProjectFile")), "PackageRoot", "ServiceManifest.xml")).Name, CodePackageName = refs.servicereference?.GetMetadata("CodePackageName") ?? "Code", Manifest = refs.Manifest })); }
public override bool Execute() { var path = Path.Combine(Path.GetDirectoryName(ProjectPath), "pkg", Configuration, "ApplicationManifest.xml"); var appManifest = FabricSerializers.AppManifestFromFile(path); appManifest.SetGitVersion(UpdateBaseVersion ? BaseVersion : appManifest.ApplicationTypeVersion, FabricServiceReferenceFactory.Get(ProjectReferences, ServiceProjectReferences), Configuration, MaxHashLength, SkipHash); FabricSerializers.SaveAppManifest(path, appManifest); return(true); }
public override bool Execute() { var projectrefs = ProjectReferences?.Select(p => Path.GetDirectoryName(p.GetMetadata("MSBuildSourceProjectFile"))).ToList() ?? new List <string>(); var baseDir = Path.GetDirectoryName(BasePath); var srv = FabricSerializers.ServiceManifestFromFile(Path.Combine(baseDir, "PackageRoot", "ServiceManifest.xml")); var ver = srv.SetGitVersion(UpdateBaseVersion ? BaseVersion : srv.Version, baseDir, TargetDir, CheckIndividualPackages, projectrefs, MaxHashLength, SkipHash); File.WriteAllText(Path.Combine(baseDir, "pkg", Configuration, "Version.txt"), ver.version + " " + ver.date.Ticks); File.WriteAllText(Path.Combine(baseDir, "pkg", Configuration, "Diff.txt"), ver.diff); FabricSerializers.SaveServiceManifest(Path.Combine(baseDir, "pkg", Configuration, "ServiceManifest.xml"), srv); return(true); }
public override bool Execute() { var basePath = ProjectDir; var manifest = FabricSerializers.ServiceManifestFromFile(Path.Combine(basePath, "PackageRoot", "ServiceManifest.xml")); string servicePath = Path.Combine(basePath, "pkg", Configuration); if (manifest.ConfigPackage != null) { foreach (var cv in manifest.ConfigPackage) { AddFiles(Path.Combine(basePath, "PackageRoot", cv.Name), Path.Combine(servicePath, cv.Name)); } } if (manifest.DataPackage != null) { foreach (var cv in manifest.DataPackage) { AddFiles(Path.Combine(basePath, "PackageRoot", cv.Name), Path.Combine(servicePath, cv.Name)); } } if (manifest.CodePackage != null) { foreach (var cv in manifest.CodePackage) { if (cv.Name == "Code") { AddFiles(Path.Combine(basePath, PublishDir), Path.Combine(servicePath, cv.Name)); } else { AddFiles(Path.Combine(basePath, "PackageRoot", cv.Name), Path.Combine(servicePath, cv.Name)); } } } AddFiles(Path.Combine(basePath, "PackageRoot", "ServiceManifest.xml"), Path.Combine(servicePath, "ServiceManifest.xml")); SourceFiles = sourcelist.Select(s => new TaskItem(s)).ToArray(); DestinationFiles = destlist.Select(s => new TaskItem(s)).ToArray(); return(true); }
public override bool Execute() { var basePath = Path.GetDirectoryName(ProjectPath); var path = Path.Combine(basePath, "pkg", Configuration, "ApplicationManifest.xml"); var appManifest = FabricSerializers.AppManifestFromFile(path); foreach (var serviceReference in appManifest.ServiceManifestImport) { var servicePath = Path.Combine(basePath, PackageLocation, serviceReference.ServiceManifestRef.ServiceManifestName, "ServiceManifest.xml"); if (File.Exists(servicePath)) { var serviceManifest = FabricSerializers.ServiceManifestFromFile(servicePath); serviceReference.ServiceManifestRef.ServiceManifestVersion = serviceManifest.Version; } } var aggregatedVersion = VersionHelper.Hash(string.Join("", appManifest.ServiceManifestImport.Select(ss => ss.ServiceManifestRef.ServiceManifestVersion)), MaxHashLength); appManifest.ApplicationTypeVersion = appManifest.ApplicationTypeVersion + "." + aggregatedVersion; FabricSerializers.SaveAppManifest(path, appManifest); return(true); }