InstallShield 从参数复制文件
InstallShield Copy file from parameters
我正在努力使用 InstallShield LE 创建一个允许在参数中传递 3 个特定文件的简单安装文件。在查看 InstallShield 论坛(不是很活跃)和 Whosebug 问题后,如果有人可以分享 his/her 经验,我将不胜感激。
第一个障碍:了解如何传递参数中的文件?
MyAddin.exe /v"CONFIGFILE=C:\temp\Config.xml TEMPLATE1=C:\Templates\Template1.html TEMPLATE2=C:\Templates\Template2.html" /v"/qb"
一个。安装似乎执行良好,但我不确定参数是否正确注入。谁能证实?
b.有没有办法让参数值包含空格(例如 C:\Program Files (x86))?
2n 障碍:如何将文件复制到目标文件夹
对于所有 3 个参数,脚本应该简单地检查是否已填充 => 将文件复制到安装文件夹中的模板或配置文件夹。
为此,我认为唯一的选择是定义自定义操作:
所以我基于这个 example which should work according to this:
创建了一个简单的 VB 脚本
' Get the value of INSTALLDIR
Dim sInstalldir
Dim configFile
Dim Template1
sInstalldir = Session.Property("INSTALLDIR")
configFile = Session.Property("CONFIGFILE")
TEMPLATE1 = Session.Property("TEMPLATE1")
' Show it.
MsgBox configFile
MsgBox sInstalldir
MsgBox TEMPLATE2
' @To to be completed
If configFile != "" Then
'.. copy to sInstalldir & "Config"
If TEMPLATE1 != "" Then
'... copy to sInstalldir & "Templates"
脚本已执行,但所有弹出窗口都是空白:-/(看来我不是唯一的one)
编辑:根据 this 确定,该值将为 null,具体取决于执行自定义操作的阶段。如果执行的 "After initialization" 不是最优的,则 sInstalldir 值可用。参数还是空的。
我看到 installscript 语言提供了示例中的文件复制功能 here 但我不确定如何使用 LE 版本创建其中一个脚本。
我正在努力寻找答案,我即将放弃并转而使用 NSIS 或 Inno 设置。这对我来说是一种耻辱,因为我的安装文件完美无缺。
好的,这是我的调查结果的执行摘要:InstallShield Limited Edition 确实……有限。除了不提供检查 "Office 2013" 或 "Office 2016" 或最近的 Windows 版本等基本先决条件的能力外,参数注入根本不起作用。
我已经安装了 Express 版本,重新创建了我的安装脚本并使用了相同的 VB 脚本和相同的命令行,一切都很顺利。我唯一的问题是我只有 21 天或需要支付许可证费用。
我真的认为 InstallShield LE 令人困惑并且不利于 Flexerasoftware 的形象......
无论如何,我希望这个 post 能节省一些人的时间。
我正在努力使用 InstallShield LE 创建一个允许在参数中传递 3 个特定文件的简单安装文件。在查看 InstallShield 论坛(不是很活跃)和 Whosebug 问题后,如果有人可以分享 his/her 经验,我将不胜感激。
第一个障碍:了解如何传递参数中的文件?
MyAddin.exe /v"CONFIGFILE=C:\temp\Config.xml TEMPLATE1=C:\Templates\Template1.html TEMPLATE2=C:\Templates\Template2.html" /v"/qb"
一个。安装似乎执行良好,但我不确定参数是否正确注入。谁能证实? b.有没有办法让参数值包含空格(例如 C:\Program Files (x86))?
2n 障碍:如何将文件复制到目标文件夹 对于所有 3 个参数,脚本应该简单地检查是否已填充 => 将文件复制到安装文件夹中的模板或配置文件夹。 为此,我认为唯一的选择是定义自定义操作:
所以我基于这个 example which should work according to this:
创建了一个简单的 VB 脚本' Get the value of INSTALLDIR
Dim sInstalldir
Dim configFile
Dim Template1
sInstalldir = Session.Property("INSTALLDIR")
configFile = Session.Property("CONFIGFILE")
TEMPLATE1 = Session.Property("TEMPLATE1")
' Show it.
MsgBox configFile
MsgBox sInstalldir
MsgBox TEMPLATE2
' @To to be completed
If configFile != "" Then
'.. copy to sInstalldir & "Config"
If TEMPLATE1 != "" Then
'... copy to sInstalldir & "Templates"
脚本已执行,但所有弹出窗口都是空白:-/(看来我不是唯一的one) 编辑:根据 this 确定,该值将为 null,具体取决于执行自定义操作的阶段。如果执行的 "After initialization" 不是最优的,则 sInstalldir 值可用。参数还是空的。
我看到 installscript 语言提供了示例中的文件复制功能 here 但我不确定如何使用 LE 版本创建其中一个脚本。
我正在努力寻找答案,我即将放弃并转而使用 NSIS 或 Inno 设置。这对我来说是一种耻辱,因为我的安装文件完美无缺。
好的,这是我的调查结果的执行摘要:InstallShield Limited Edition 确实……有限。除了不提供检查 "Office 2013" 或 "Office 2016" 或最近的 Windows 版本等基本先决条件的能力外,参数注入根本不起作用。 我已经安装了 Express 版本,重新创建了我的安装脚本并使用了相同的 VB 脚本和相同的命令行,一切都很顺利。我唯一的问题是我只有 21 天或需要支付许可证费用。 我真的认为 InstallShield LE 令人困惑并且不利于 Flexerasoftware 的形象...... 无论如何,我希望这个 post 能节省一些人的时间。