public void Commit(string productName, string author, PackagePlatform platform, int languageCode, Guid productCode) { IntPtr infoHandle; ThrowOnFailure(SafeNativeMethods.MsiGetSummaryInformation(_handle, null, 20, out infoHandle)); SetProperty(infoHandle, 2, 30, 0, 0, "Installation Database"); SetProperty(infoHandle, 3, 30, 0, 0, productName); SetProperty(infoHandle, 4, 30, 0, 0, author); SetProperty(infoHandle, 5, 30, 0, 0, "Installer"); SetProperty(infoHandle, 7, 30, 0, 0, $"{(platform == PackagePlatform.X64 ? "x64" : "Intel")};{languageCode}"); SetProperty(infoHandle, 9, 30, 0, 0, productCode.ToStringFormatted()); SetProperty(infoHandle, 14, 3, MsiVersion, 0, string.Empty); SetProperty(infoHandle, 15, 3, Properties, 0, string.Empty); ThrowOnFailure(SafeNativeMethods.MsiSummaryInfoPersist(infoHandle)); ThrowOnFailure(SafeNativeMethods.MsiCloseHandle(infoHandle)); ThrowOnFailure(SafeNativeMethods.MsiDatabaseCommit(_handle)); }
private void WriteProperties(Guid productCode) { Write("Property", "ALLUSERS", 1); Write("Property", "ARPNOMODIFY", 1); Write("Property", "ARPNOREPAIR", 1); Write("Property", "Manufacturer", _package.Author); Write("Property", "ProductLanguage", CultureInfo.CurrentCulture.LCID); Write("Property", "ProductName", _package.ProductName); Write("Property", "ProductCode", productCode.ToStringFormatted()); Write("Property", "ProductVersion", _package.Version.ToString()); Write("Property", "SecureCustomProperties", "NEWERVERSIONDETECTED;OLDERVERSIONBEINGUPGRADED"); Write("Property", "UpgradeCode", _package.UpgradeCode.ToStringFormatted()); }