Пример #1
0
        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));
        }
Пример #2
0
 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());
 }