问题标签 [installscript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
installscript - 您如何比较 InstallScript 中的版本?
看起来有一个内置函数,VerCompare
但它需要包含所有四个组件的字符串,例如 1.2.3.4。我没有尝试在 InstallScript 中进行字符串操作,并且希望有人已经拥有获取版本字符串并根据需要添加 .0 的代码。
installation - Installscript 项目如何挂钩到安装过程
我使用 InstallShield 2010 创建了一个 installscript 项目。我在安装过程中使用“OnFirstUIBefore()”方法收集信息。但是当软件的实际安装发生时(即当你看到一个进度条并且它正在复制安装文件时)我想根据用户输入做一些操作。
我的两个问题是:
1 - 我如何挂钩到安装过程的实际部分?
2 - 如果出现任何问题,我将如何撤消我所做的事情?
注意:- 这是一个纯 installscript 项目,而不是 installscript MSI 项目等。
installshield - 安装脚本 XP
我有一个 installscriptmsi 项目,它的输出是 setup.exe。我可以在 Vista 及更高版本上安装它而没有任何问题。没有提示我输入 UAC。但在 XP 上,总是提示我运行为对话框。我知道这是因为设置了 LAAW_SHELLEXECUTEVERB = "runas" 我得到了 Run as prompt。但我确实希望我的安装程序在 XP 上以管理员身份运行。我还在 Release 下将RequiredExecutionLevel 设置为管理员。
那么有没有一种方法可以让 installscriptmsi 不在 XP 上提示 UAC。我正在使用 IS2012。我正在粘贴下面的脚本。
installscript - SYSINFO.NWinMajor 为 Windows 7 提供了错误的值
我正在使用 InstallShield 2012 创建安装程序,并且正在使用 SYSINFO 主要和次要值检查操作系统。SYSINFO.nWinMajor 给出了正确的值,但 SYSINFO.nWinMinor 给出了 Windows 7 的 0。它应该是 1。
有人知道上面的解决方案吗?
windows-installer - 用户是否卸载旧版本产品的选项
我正在使用 InstallShield 12 创建安装程序,并希望为用户提供选项,例如用户是否要卸载或保留以前的版本并可以安装新版本的复选框。
有谁知道我怎么能实现上述目标?
我在对话框上添加了一个复选框并添加了一个属性,如果用户选择它,则卸载以前的版本,否则继续使用新版本而不卸载以前的版本。
installshield - 在 Installshield 的合并模块中添加自定义操作
我有一个想要转换为合并模块的 MSI 项目。文件的写入很简单,可以复制。但是,我正在努力复制自定义操作。我需要从合并模块执行自定义操作。
这是我在 MSI 项目中的自定义操作的样子:
更新:
我发现了问题。在 MSI 项目中,您创建的目录的名称;如果我创建一个文件夹 FBB Installer Files,则保持不变;在目录下的直接编辑器中,键名将是 FBB_INSTALLER_FILES;但是,如果您在合并模块中执行相同的操作,则密钥将设置为 FBB_INSTALLER_.984DBBFF_9C1E_46C0_9E76_BF6D4CE53321。基本上,合并模块将 GUID 附加到键的名称。
installshield - 安装路径中的外来字符 - Installshield Installscript 项目
我有一个奇怪的问题,它间歇性地出现。安装程序安装正常,但安装路径有前导字符。这是一个纯英语美国语言安装程序。
这就是我所做的:
g_szProductBaseDir = g_szCompanyBaseDir ^ IFX_PRODUCT_NAME;
在哪里,
g_szCompanyBaseDir = D:\Program Files\ABC\
IFX_PRODUCT_NAME = 硬件\VMC567-CIRCLE
特殊字符嵌入在 IFX_PRODUCT_NAME 之前。最后,我们有一个安装路径,其中包含一个带有外来字符名称的额外文件夹。
日志说:
D:\Program Files\ABC\??\Hardware\VMC567-CIRCLE
谁能给我一些指示?
formatting - InstallShield 2012 构建的升级报告安装版本格式错误
在使用使用 InstallShield 2012 Spring 构建的安装程序进行升级期间,我看到以下消息:
- InstallShield 向导会将 <我们的产品> 的已安装版本 (9.01.005) 更新到版本 9.2.0.53。
- InstallShield 向导正在将 <我们的产品> 的 (9.01.005) 更新到版本 9.2.0.53。
这些消息基于字符串资源IDS_IFX_SDWELCOMMESSAGE_UPDATE_WELCOME
和IDS_IFX_STATUSEX_STATICTEXT_UPDATEUI
. 我相信未更改的字符串资源将如下所示:
- InstallShield 向导会将已安装的 %P 版本 (%VI) 更新到版本 %VS。要继续,请单击下一步。
- InstallShield 向导正在将 %P 更新 (%VI) 到版本 %VS。
尽管一些资源表明第二个字符串资源是“InstallShield Wizard is updated %VI of %P to version %VS”。
问题是旧的(安装的)版本号应该是像“9.1.5.2”这样的显示字符串,而不是像“9.01.005”这样的内部版本号的格式化版本。据我了解,它SdSubstituteProductInfo
用于IFX_INSTALLED_DISPLAY_VERSION
填充默认 InstallScript 代码%VI
中的替换。OnUpdateUIBefore
并且IFX_INSTALLED_DISPLAY_VERSION
默认来自IFX_INSTALLED_VERSION
,这解释了为什么首选显示字符串没有出现在我们想要的位置。而且我假设SdWelcome
(或任何类似引用的对话框或代码IFX_INSTALLED_DISPLAY_VERSION
)也显示格式错误的版本。
尽管我在网上搜索了上面提到的函数、字符串和字符串 ID,但我还没有找到以正确格式显示正确格式的旧版本号 (DisplayVersion) 的理想解决方案。一些文章建议对跳过旧版本号的格式字符串进行硬编码,而不是使用包含%VI
. 其他人建议根据需要手动格式化版本号并将结果放入IFX_INSTALLED_DISPLAY_VERSION
. 我知道有一个更好的答案,并且我希望下次我或其他人寻找它时更容易找到它。
vb6 - 无法从我的 InstallShield 脚本启动另一个安装程序
我必须将用于安装 VB6 应用程序的旧 InstallShield 脚本从 InstallShield 2008 转换为 InstallShield 2011。
不幸的是,InstallShield 2011 不再支持运行时的部署(使用合并模块 IIRC)。
我试图通过执行我的 InstallShield 脚本中的 VB6 运行时安装程序 (vbrun60sp6.exe) 来替换它(并且可能仅在 XP 上运行时,因为 VB6 运行时显然与 Vista 及更高版本的操作系统一起分发)。
不幸的是,由于某种原因,我对 LaunchApplication 的调用失败了,并且由于我有限的 InstallShield 脚本经验,我不知道如何获得详细的错误消息。
我可能做错了什么,如何获得更详细的错误消息来帮助我找出问题?
谢谢!
缺口