从 Basic MSI 中的 Installscript 更新 INSTALLDIR
我想在使用 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 序列中和成本最终确定之后的执行序列中安排了自定义操作。
请帮忙。
I want to change the INSTALLDIR value for my Installer during Installation using Installscript. How should I do it?
I have already tried the following:
Created a custom action as:
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;
My custom action gets executed but the value of INSTALLDIR does not changes. I have scheduled my custom action in UI Sequence before Cost Finalize and in Execute Sequence After Cost Finalize.
Please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 InstallUISequence 和 InstallExecuteSequence 中,自定义操作应在 CostFinalize 之前运行。另外,MsiSetProperty 不是以这种方式使用的,我认为它不会在 InstallScript 中工作。
您可以尝试使用:
或
In both InstallUISequence and InstallExecuteSequence the custom action should run before CostFinalize. Also, MsiSetProperty is not used that way and I don't think it will work in InstallScript.
You can try using:
or