【问题标题】:Updating the INSTALLDIR from Installscript in Basic MSI在基本 MSI 中从 Installscript 更新 INSTALLDIR
【发布时间】:2011-05-17 21:08:10
【问题描述】:

我想在安装期间使用 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 序列和成本最终确定之后的执行序列中安排了我的自定义操作。

请帮忙。

【问题讨论】:

    标签: installshield installscript


    【解决方案1】:

    在 InstallUISequence 和 InstallExecuteSequence 中,自定义操作都应在 CostFinalize 之前运行。此外,MsiSetProperty 不是那样使用的,我认为它不会在 InstallScript 中工作。

    您可以尝试使用:

    INSTALLDIR = svInstallDir
    

    MsiSetProperty(hMSI, "INSTALLDIR", svInstallDir);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-26
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多