如何使用ISWiAuto18.ISWiProject dll更新Installshield项目中的注册表项值?

时间:2012-09-20 11:16:57

标签: c# installshield installscript-msi

我创建了一个程序(C#dotnet),它通过使用ISWiAuto18.ISWiProject来更新我的MSI(Installshield 2009)项目的不同属性(如路径变量)

 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
                    }
        }

但是现在我无法找到使用ISWiAuto18.ISWiProject更新Installshield项目的注册表项值的方法吗? 有没有办法更新注册表值?

1 个答案:

答案 0 :(得分:0)

ISWiProject对象有一个ISWiComponents集合,允许您获取对ISWiComponent对象的引用。完成后,您可以使用ImportRegFile方法将其他注册表数据加载到组件中。这是关于自动化界面能力的程度。

如果我明白你做得更好,我可以给出更多建议。您可能需要考虑在ISM的注册表中使用[PROPERTY],然后将属性值传递到构建中。这将是获取您可能需要的变化点的简单方法。

另一种方法是使用ISWiProject对象的UseXMLProjectFormat方法将ISM从XML转换为/从Binary转换,然后使用XML DOM来操作ISM(DTD粗略但可行)或Windows Installer SQL查询(如果是二进制格式)。 (WiX的DTF库Microsoft.Deployment.WindowsInstaller对此很好)