/// <summary> /// Update the ".wixburn" section data. /// </summary> /// <param name="stubSize">Size of the stub engine "burn.exe".</param> /// <param name="bundleId">Unique identifier for this bundle.</param> /// <returns></returns> public bool InitializeBundleSectionData(long stubSize, string bundleId) { if (this.invalidBundle) { return(false); } var bundleGuid = Guid.Parse(bundleId); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_MAGIC, BURN_SECTION_MAGIC); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_VERSION, BURN_SECTION_VERSION); this.messaging.Write(VerboseMessages.BundleGuid(bundleId)); this.binaryWriter.BaseStream.Seek(this.wixburnDataOffset + BURN_SECTION_OFFSET_BUNDLEGUID, SeekOrigin.Begin); this.binaryWriter.Write(bundleGuid.ToByteArray()); this.StubSize = (uint)stubSize; this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_STUBSIZE, this.StubSize); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_ORIGINALCHECKSUM, 0); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_ORIGINALSIGNATUREOFFSET, 0); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_ORIGINALSIGNATURESIZE, 0); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_FORMAT, 1); // Hard-coded to CAB for now. this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_COUNT, 0); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_UXSIZE, 0); this.WriteToBurnSectionOffset(BURN_SECTION_OFFSET_ATTACHEDCONTAINERSIZE, 0); this.binaryWriter.BaseStream.Flush(); this.EngineSize = this.StubSize; return(true); }