Exemple #1
0
        private string genXML(MsiProperties msiProperties)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(MsiProperties));

            using (StringWriter writer = new StringWriter())
            {
                serializer.Serialize(writer, msiProperties);

                return(writer.ToString());
            }
        }
Exemple #2
0
        private void parseDatabase()
        {
            getInstaller().UILevel = MsiUILevel.msiUILevelNone;
            msiSession             = getInstaller().OpenPackage(database, 0);

            msiSession.DoAction("CostInitialize");
            msiSession.DoAction("CostFinalize");

            msiProperties = new MsiProperties();
            parseDirectory();
            parseProperties();
            parseShortcuts();


            Console.Write(genXML(msiProperties));
        }
Exemple #3
0
        private void parseProperties()
        {
            WindowsInstaller.View view = null;
            try
            {
                view = database.OpenView("SELECT * FROM `Property`");
                view.Execute();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Unable to query msi, " + ex.Message);
            }

            msiProperties = new MsiProperties();
            Record properties = view.Fetch();

            while (properties != null)
            {
                switch (properties.get_StringData(1).ToLower())
                {
                case "manufacturer":
                    msiProperties.Manufacturer = properties.get_StringData(2);
                    break;

                case "productname":
                    msiProperties.ProductName = properties.get_StringData(2);
                    break;

                case "arpcomments":
                    msiProperties.ArpComments = properties.get_StringData(2);
                    break;

                case "arphelplink":
                    msiProperties.ArpHelpLink = properties.get_StringData(2);
                    break;

                case "arpcontact":
                    msiProperties.ArpContact = properties.get_StringData(2);
                    break;

                case "allusers":
                    msiProperties.AllUsers = properties.get_StringData(2);
                    break;

                case "arpinstalllocation":
                    msiProperties.ArpInstallLocation = properties.get_StringData(2);
                    break;

                case "arptelephone":
                    msiProperties.ArpTelephone = properties.get_StringData(2);
                    break;

                case "primaryfolder":
                    msiProperties.PrimaryFolder = properties.get_StringData(2);
                    break;

                case "msiinstallperuser":
                    msiProperties.MsiInstallPerUser = properties.get_StringData(2);
                    break;

                case "reboot":
                    msiProperties.Reboot = properties.get_StringData(2);
                    break;

                case "rootdrive":
                    msiProperties.RootDrive = properties.get_StringData(2);
                    break;

                case "targetdir":
                    msiProperties.TargetDir = properties.get_StringData(2);
                    break;

                case "installdir":
                    msiProperties.InstallDir = properties.get_StringData(2);
                    break;

                case "upgradecode":
                    msiProperties.UpgradeCode = properties.get_StringData(2);
                    break;

                case "productcode":
                    msiProperties.ProductCode = properties.get_StringData(2);
                    break;

                case "productversion":
                    msiProperties.ProductVersion = properties.get_StringData(2);
                    break;

                case "productlanguage":
                    msiProperties.ProductLanguage = properties.get_StringData(2);
                    break;
                }

                properties = view.Fetch();
            }
        }