InstallShield Basic MSI 中的 SetTargetPath 事件如何工作?
How does the SetTargetPath event in InstallShield Basic MSI work?
我有一个产品需要安装到多个驱动器和目录,其中一些可以自定义。因此,我正在查看 InstallShield Basic MSI 项目中目录在 运行 时是如何更改的。我看到 DestinationFolder
和 InstallChangeFolder
对话框协同工作,使用 OK
按钮按下 InstallChangeFolder
上的 SetTargetPath
事件来更改 INSTALLDIR
目录.
我不明白的是为什么SetTagetPath
只有一个参数。 MsiSetTargetPath
函数除了安装句柄外还带2个参数,所以不明白为什么SetTargetPath
事件只带1个,我想设置一个指定的目录变量来引用指定的目录。这需要两个参数。他们如何只使用一个参数?
documentation on SetTargetPath
我看了3遍还是没看懂
看来 SetTargetPath
的目的是将 属性 中的更新值传输到同名的目录变量,对旧值和新值执行一些验证(在目录变量和 属性 值)。因此,将新值传输到目录变量似乎分两步进行:
- 将同名的 属性 设置为新值。
- 调用
SetTargetPath
提供 属性 名称以将值从 属性 复制到目录中。
在执行此操作时,请注意如果提供的 属性 是方括号,则应引用另一个 属性 名称。所以如果要复制到目录变量的值直接在属性中,不要使用括号。
您想研究 "file costing"(成本初始化、成本最终确定)。在计算成本之前,您可以使用 Type 51 Set 属性 自定义操作。计算成本后,您必须使用 Type 35 Set Directory 自定义操作。这是因为需要重新计算成本。
我注意到你有很多 MSI 问题。您可能想要读一本书,例如 Phil Wilson 的 Windows 安装程序权威指南。那和导师是最好的信息来源,因为这方面的培训很少。
我有一个产品需要安装到多个驱动器和目录,其中一些可以自定义。因此,我正在查看 InstallShield Basic MSI 项目中目录在 运行 时是如何更改的。我看到 DestinationFolder
和 InstallChangeFolder
对话框协同工作,使用 OK
按钮按下 InstallChangeFolder
上的 SetTargetPath
事件来更改 INSTALLDIR
目录.
我不明白的是为什么SetTagetPath
只有一个参数。 MsiSetTargetPath
函数除了安装句柄外还带2个参数,所以不明白为什么SetTargetPath
事件只带1个,我想设置一个指定的目录变量来引用指定的目录。这需要两个参数。他们如何只使用一个参数?
documentation on SetTargetPath
我看了3遍还是没看懂
看来 SetTargetPath
的目的是将 属性 中的更新值传输到同名的目录变量,对旧值和新值执行一些验证(在目录变量和 属性 值)。因此,将新值传输到目录变量似乎分两步进行:
- 将同名的 属性 设置为新值。
- 调用
SetTargetPath
提供 属性 名称以将值从 属性 复制到目录中。
在执行此操作时,请注意如果提供的 属性 是方括号,则应引用另一个 属性 名称。所以如果要复制到目录变量的值直接在属性中,不要使用括号。
您想研究 "file costing"(成本初始化、成本最终确定)。在计算成本之前,您可以使用 Type 51 Set 属性 自定义操作。计算成本后,您必须使用 Type 35 Set Directory 自定义操作。这是因为需要重新计算成本。
我注意到你有很多 MSI 问题。您可能想要读一本书,例如 Phil Wilson 的 Windows 安装程序权威指南。那和导师是最好的信息来源,因为这方面的培训很少。