InstallShield 2023 Basic MSI:如何在运行时更改 INSTALLDIR 的值?

问题描述 投票:0回答:1

我正在创建一个基本 MSI 项目,该项目需要将其文件复制到运行时不同的位置。

我尝试使用自定义操作在运行时设置 INSTALLDIR 的值。这在调试器中有效(在安装后初始化执行序列中),但如果 MSI 文件移动到另一个文件夹并直接从那里运行(在调试器外部),则无效。

我还尝试在其他执行序列自定义操作中设置 INSTALLDIR,但无济于事。

代码如下:

 // Called at various exec sequences, including After Cost Finalize
function AfterXXX(hMSI)
    // To Do: Declare local variables.
    STRING szMsg;
    NUMBER nResult;
begin
    if (!SetXXXFolders()) then
        szMsg = "Unable to retrieve XXX install path. The installation will not continue.";
       MessageBox(szMsg, SEVERE);
       return ERROR_INSTALL_FAILURE;
    endif;

    // Set INSTALLDIR to szPrograms (confirmed properly populated)
    INSTALLDIR = szPrograms;

    return ERROR_SUCCESS;
end;

InstallShield 版本是 InstallShield 2023 Premiere。

对可能出现的问题有什么想法吗?

installshield
1个回答
0
投票

给定代码中 INSTALLDIR 的分配不正确。使用 MsiSetProperty 方法。

MsiSetProperty(hMSI, "USERNAME", svName);
© www.soinside.com 2019 - 2024. All rights reserved.