private PackagingMetadata GetPackagingMetadata() { var result = new PackagingMetadata(); result.DeploymentType = IsPortable ? DeploymentType.FrameworkDependent : DeploymentType.SelfContained; result.ApplicationName = ApplicationName; result.ApplicationVersion = ApplicationVersion; if (String.IsNullOrEmpty(PackageName)) { result.PackageFileName = Path.Combine(PublishedOutput, $"{result.ApplicationName}-{result.ApplicationVersion}"); } else { result.PackageFileName = PackageName; } result.PathToFiles = PublishedOutput; result.CustomMetadata = (Dictionary <string, string>)AdditionalMetadata.CloneCustomMetadata(); // We inverse here and now go through the file. If the key exists, we simply skip since the properties // win by order. if (!String.IsNullOrEmpty(MetadataFile) && File.Exists(MetadataFile)) { var fileMetadata = JObject.Parse(File.ReadAllText(MetadataFile)); foreach (var line in fileMetadata) { var key = line.Key.Substring(0, 1).ToUpper() + line.Key.Substring(1, line.Key.Length); if (!result.CustomMetadata.ContainsKey(key)) { result.CustomMetadata.Add(key, line.Value.ToString()); } } } return(result); }
public override void Pack(PackagingMetadata metadata) { var finalName = metadata.PackageFileName + (metadata.PackageFileName.Contains(".zip") ? String.Empty : ".zip"); if (File.Exists(finalName)) { File.Delete(finalName); } var tempFile = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); try { ZipFile.CreateFromDirectory(metadata.PathToFiles, tempFile); File.Copy(tempFile, finalName); } catch { throw; } finally { File.Delete(tempFile); } }
public abstract void Pack(PackagingMetadata metadata);