private void ExportPackage(int newPackageId, byte[] bytes)
{
using (var service = GetPackageDesignService())
{
DeploymentPackageHeader packageHeader = GetPackageHeader(service, newPackageId);
using (var destinationStream = new MemoryStream())
{
using (var outputStream = new ZipOutputStream(destinationStream))
{
outputStream.SetLevel(5); // 0 - store only to 9 - means best compression
var entry = new ZipEntry("PackageHeader.xml");
outputStream.PutNextEntry(entry);
byte[] headerArray = GetHeaderByteArray(packageHeader);
outputStream.Write(headerArray, 0, headerArray.Length);
entry = new ZipEntry("PackageContents.zip");
outputStream.PutNextEntry(entry);
outputStream.Write(bytes, 0, bytes.Length);
outputStream.Finish();
string path = Path.Combine(
this.PackageContentDirectory,
string.Format("{0}_{1}.zip",
this.PackageName, this.PackageVersion));
using (var bw = new BinaryWriter(File.OpenWrite(path)))
{
bw.Write(destinationStream.ToArray());
}
}
}
}
}