2011-05-17 49 views
1

我想要在安裝過程中使用Installscript更改安裝程序的INSTALLDIR值。我應該怎麼做? 我已經試過如下: 創建自定義操作爲:從Installscript在基本MSI中更新INSTALLDIR

function InitializeValues(hMSI) 
    STRING svProductName; 
    STRING svInstallDir; 
    NUMBER nvSize; 
begin       
    nvSize=255; 
    MsiGetProperty (hMSI, "ProductName", svProductName, nvSize); 
    if(svProductName = "Notepad Pro") then 
     svInstallDir = PROGRAMFILES^svProductName; 
//  MsiSetTargetPath(hMSI,INSTALLDIR,svInstallDir);  
     MsiSetProperty(hMSI,INSTALLDIR,svInstallDir); 
     MessageBox(INSTALLDIR,INFORMATION); 
    endif; 
end; 

我的自定義操作被執行,但INSTALLDIR的值不會改變。我已經在成本最終確定前和成本最終確定後的執行順序中計劃了我的自定義操作。

請幫忙。

回答

5

在InstallUISequence和InstallExecuteSequence中,自定義操作都應在CostFinalize之前運行。另外,MsiSetProperty不會以這種方式使用,我認爲它不會在InstallScript中起作用。

您可以嘗試使用:

INSTALLDIR = svInstallDir 

MsiSetProperty(hMSI, "INSTALLDIR", svInstallDir); 
+0

感謝。它有幫助。 – 2011-05-18 17:42:02

相關問題