我想使用Installscript在安装期间更改安装程序的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的值不会更改。我已经在成本最终确定之前在UI序列中安排了我的自定义操作,并且在成本结束后在执行顺序中安排了
请帮忙。
答案 0 :(得分:5)
在InstallUISequence和InstallExecuteSequence中,自定义操作应在CostFinalize之前运行。此外,MsiSetProperty没有这种方式使用,我认为它不会在InstallScript中使用。
您可以尝试使用:
INSTALLDIR = svInstallDir
或
MsiSetProperty(hMSI, "INSTALLDIR", svInstallDir);