コード例 #1
0
        public void Install(RunningDeployment deployment)
        {
            if (deployment.Variables.GetFlag(SpecialVariables.Action.Azure.CloudServicePackageExtractionDisabled, false))
            {
                return;
            }

            var packagePath = deployment.Variables.Get(SpecialVariables.Action.Azure.CloudServicePackagePath);

            Log.VerboseFormat("Extracting Cloud Service package: '{0}'", packagePath);
            using (var package = Package.Open(packagePath, FileMode.Open))
            {
                var manifest         = AzureCloudServiceConventions.ReadPackageManifest(package);
                var workingDirectory = deployment.CurrentDirectory;

                ExtractContents(package, manifest, AzureCloudServiceConventions.PackageFolders.ServiceDefinition, workingDirectory);
                ExtractContents(package, manifest, AzureCloudServiceConventions.PackageFolders.NamedStreams, workingDirectory);
                ExtractLayouts(package, manifest, workingDirectory);
            }


            if (deployment.Variables.GetFlag(SpecialVariables.Action.Azure.LogExtractedCspkg))
            {
                LogExtractedPackage(deployment.CurrentDirectory);
            }

            Log.SetOutputVariable(SpecialVariables.Action.Azure.PackageExtractionPath, deployment.CurrentDirectory, deployment.Variables);
        }
コード例 #2
0
        public void Install(RunningDeployment deployment)
        {
            if (deployment.Variables.GetFlag(SpecialVariables.Action.Azure.CloudServicePackageExtractionDisabled, false))
            {
                return;
            }

            Log.Verbose("Re-packaging cspkg.");
            var workingDirectory    = deployment.CurrentDirectory;
            var originalPackagePath = deployment.Variables.Get(SpecialVariables.Action.Azure.CloudServicePackagePath);
            var newPackagePath      = Path.Combine(Path.GetDirectoryName(originalPackagePath), Path.GetFileNameWithoutExtension(originalPackagePath) + "_repacked.cspkg");

            using (var originalPackage = Package.Open(originalPackagePath, FileMode.Open))
                using (var newPackage = Package.Open(newPackagePath, FileMode.CreateNew))
                {
                    var originalManifest = AzureCloudServiceConventions.ReadPackageManifest(originalPackage);

                    var newManifest = new PackageDefinition
                    {
                        MetaData = { AzureVersion = originalManifest.MetaData.AzureVersion }
                    };

                    AddParts(newPackage, newManifest, Path.Combine(workingDirectory, AzureCloudServiceConventions.PackageFolders.ServiceDefinition),
                             AzureCloudServiceConventions.PackageFolders.ServiceDefinition);
                    AddParts(newPackage, newManifest, Path.Combine(workingDirectory, AzureCloudServiceConventions.PackageFolders.NamedStreams),
                             AzureCloudServiceConventions.PackageFolders.NamedStreams);
                    AddLocalContent(newPackage, newManifest, workingDirectory);

                    AddPackageManifest(newPackage, newManifest);

                    newPackage.Flush();
                }

            fileSystem.OverwriteAndDelete(originalPackagePath, newPackagePath);
        }
コード例 #3
0
        public void Install(RunningDeployment deployment)
        {
            if (deployment.Variables.GetFlag(SpecialVariables.Action.Azure.CloudServicePackageExtractionDisabled, false))
            {
                return;
            }

            Log.Verbose("Re-packaging cspkg.");
            var workingDirectory    = deployment.CurrentDirectory;
            var originalPackagePath = deployment.Variables.Get(SpecialVariables.Action.Azure.CloudServicePackagePath);
            var newPackagePath      = Path.Combine(Path.GetDirectoryName(originalPackagePath), Path.GetFileNameWithoutExtension(originalPackagePath) + "_repacked.cspkg");

            using (semaphoreFactory.Acquire("Calamari - multi threaded packaging causes IsolatedStorage errors", "Waiting to re-package"))
                using (var originalPackage = Package.Open(originalPackagePath, FileMode.Open))
                    using (var newPackage = Package.Open(newPackagePath, FileMode.CreateNew))
                    {
                        try
                        {
                            var originalManifest = AzureCloudServiceConventions.ReadPackageManifest(originalPackage);

                            var newManifest = new PackageDefinition
                            {
                                MetaData = { AzureVersion = originalManifest.MetaData.AzureVersion }
                            };

                            AddParts(newPackage, newManifest,
                                     Path.Combine(workingDirectory, AzureCloudServiceConventions.PackageFolders.ServiceDefinition),
                                     AzureCloudServiceConventions.PackageFolders.ServiceDefinition);
                            AddParts(newPackage, newManifest,
                                     Path.Combine(workingDirectory, AzureCloudServiceConventions.PackageFolders.NamedStreams),
                                     AzureCloudServiceConventions.PackageFolders.NamedStreams);
                            AddLocalContent(newPackage, newManifest, workingDirectory);

                            AddPackageManifest(newPackage, newManifest);

                            newPackage.Flush();
                        }
                        catch (Exception ex)
                        {
                            Log.Error(ex.PrettyPrint());
                            throw new Exception("An exception occured re-packaging the cspkg");
                        }
                    }

            fileSystem.OverwriteAndDelete(originalPackagePath, newPackagePath);
        }