2012-09-20 58 views
0

我創建了一個程序(C#的dotnet)我的MSI(2009年的Installshield)項目的不同性質(如路徑變量)通過使用ISWiAuto18.ISWiProject像如何使用ISWiAuto18.ISWiProject dll更新Installshield項目中的註冊表項值?

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項目的我的註冊表鍵值的方法? 有沒有更新註冊表值的方法?

回答

0

ISWiProject對象有一個ISWiComponents集合,它允許您獲取對ISWiComponent對象的引用。一旦你這樣做了,你可以使用ImportRegFile方法將其他註冊表數據加載到組件中。這是關於自動化界面能力的程度。

如果我明白你在做的更好,我可以提供更多建議。您可能需要考慮在ISM的註冊表中使用[PROPERTY],然後將屬性值傳遞到構建中。這將是獲取您可能需要的變化點的簡單方法。

另一種方法是使用ISWiProject對象的UseXMLProjectFormat方法將ISM從XML轉換爲Binary,或者使用XML DOM操作ISM(DTD粗略但可行)或Windows Installer SQL查詢(如果二進制格式。 (WiX的DTF庫Microsoft.Deployment.WindowsInstaller對此很甜)

相關問題