Как обновить значения ключа реестра в проекте Installshield с использованием ISWiAuto18.ISWiProject dll?

Я создал программу (C# dotnet), которая обновляет различные свойства (например, переменные пути) моего проекта MSI (Installshield 2009), используя ISWiAuto18.ISWiProject, как

 for (int count = 1; count <= m_ISWiProj.ISWiPathVariables.Count; count++)
                {
                    if (m_ISWiProj.ISWiPathVariables[count].Name == pathVar)
                    {
                        m_ISWiProj.ISWiPathVariables[count].Value = pathvarvalue;
                        m_ISWiProj.IswiAutoUpgradeEntries
                    }
        }

Но теперь я не могу найти способ обновить значения моего реестра в проекте Installshield с помощью ISWiAuto18.ISWiProject? Есть ли способ обновить значения реестра?

1 ответ

Объект ISWiProject имеет коллекцию ISWiComponents, которая позволяет получить ссылку на объект ISWiComponent. Сделав это, вы можете использовать метод ImportRegFile для загрузки дополнительных данных реестра в компонент. Это о степени возможностей интерфейса автоматизации.

Если бы я понял, что ты делаешь лучше, я мог бы дать больше советов. Возможно, вы захотите использовать [PROPERTY] в своей таблице реестра ISM, а затем передать значения свойств в сборку. Это был бы простой способ получить точки вариации, которые вам могут понадобиться.

Другой подход заключается в использовании метода UseXMLProjectFormat объекта ISWiProject для преобразования ISM из XML в / из двоичного файла, а затем либо использования XML DOM для управления ISM (DTD является грубым, но выполнимым), либо SQL-запросов установщика Windows в двоичном формате. (Библиотека DTF WiX Microsoft.Deployment.WindowsInstaller хороша для этого)

Другие вопросы по тегам