コード例 #1
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }