/// <summary> /// Generates the package. /// </summary> /// <param name="items">The items.</param> /// <param name="packageName">Name of the package.</param> /// <param name="packageAuthor">The package author.</param> /// <returns>Download path</returns> public virtual string GeneratePackage(IEnumerable <ItemUri> items, string packageName, string packageAuthor) { try { var project = new PackageProject { Metadata = { PackageName = packageName.Trim(), Author = packageAuthor, Version = DateTime.UtcNow.ToString("yyyyMMddHHmmss") } }; var filePath = FileUtil.MakePath(Settings.PackagePath, string.Format("{0}-{1}.{2}", project.Metadata.Version, PackageUtils.CleanupFileName(project.Metadata.PackageName), "zip")); var source = new ExplicitItemSource { Name = "PackMan added Items" }; foreach (var item in items) { source.Entries.Add(new ItemReference(item, false).ToString()); } project.Sources.Add(source); using (new Sitecore.SecurityModel.SecurityDisabler()) { WritePackage(project, filePath); return(filePath); } } catch (Exception ex) { Sitecore.Diagnostics.Log.Error(ex.Message, ex, this); return(null); } }