问题标签 [basic-msi]

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.

0 投票
1 回答
546 浏览

installshield - 在 installshield 基本 msi 项目中读取对话框响应

我有一个对话框 SAPEnv dat 有八个单选按钮,包含在名为 SAPEnviro 的同一属性下。我想要做的是在我的 installscript 中获取该值并根据单击的按钮设置注册表值。我使用了 msigetproperty 函数,但它的 svproperty 参数每次都返回空白。而 nvbuff 大小争论确实会根据返回值的大小返回一个值。

0 投票
1 回答
1423 浏览

windows-installer - 将安装路径作为输入传递给 dll - 基本 MSI - InstallShield 2012

将从目标文件夹对话框中选择的安装路径作为输入传递给自定义对话框中的 DLL。

我正在使用 InstallShield 2012 设计一个基本的 MSI 安装程序项目。我设计了一个自定义对话框以在自定义对话框中获取用户登录信息等,并将详细信息传递给 DLL,然后相应地创建一个数据库。但是我需要知道如何将安装路径 [在目标文件夹对话框中选择] 作为输入传递给 dll,以便在正确的文件夹中创建我的数据库。我的 DLL 操作是在 Installfiles 之后执行的。

提前致谢 !!如果您无法理解上述内容,我很乐意解释..

0 投票
1 回答
479 浏览

windows-installer - 在自定义对话框中处理来自 dll 的错误消息而不中止安装 - 基本 MSI -Installshield 2012

我正在使用 Installshield 2012 构建一个基本的 msi 安装程序,这里我有一个自定义对话框,我在其中获取用户输入,然后将其传递给 dll 进行验证。dll 根据成功或失败返回 0 或 1,如果失败,它还会提供一个 msgbox。

问题是在消息框中单击确定后,安装被中止。无论如何在不中止安装的情况下抛出消息框[类似于 HTML 表单验证??]

0 投票
1 回答
4794 浏览

installshield - 如果自定义操作失败则回滚安装 [在 InstallFinalise 之后] -Basic Msi -Installshield 2012

我正在使用installshield 2012 spring 专业版创建一个基本的 msi 安装程序,这里我有一个自定义对话框来从用户那里收集一些数据,基于这些数据我调用一个自定义 dll 操作来在安装文件夹中创建一个数据库。

我有一个计划的 dll 自定义操作在 InstallFinalise 之后运行,我想检查 dll 的返回值,如果该值指示失败,我需要中止并回滚安装过程。

我设法捕捉到错误并中止安装,但问题在于回滚.. 现在安装中止但文件已经创建。如何让安装回滚?有可能..有什么想法吗?

0 投票
0 回答
21180 浏览

windows-installer - 卸载不会删除 INSTALLDIR - Basic MSI - InstallShield 2012 中的文件

我正在使用 InstallShield 2012 Spring Professional 创建一个基本 MSI 安装程序。

在这里,我在应用程序文件中创建了一个文件夹结构C:\Program files\Test Setup\ProductnameTest Setup它是INSTALLDIR,并且在其中我有一个子目录,其中一个 ( launch) 包含.exe文件。

我已经使用Add files and foldersProject Assistant 的应用程序文件菜单中的选项添加了这些文件和目录结构。

安装产品后,当我卸载它时,我发现虽然.exe删除了一些.exe文件,但启动子目录中的一些文件并没有删除。这些.exe都没有启动。

InstallShield 应该删除它创建的所有文件和文件夹,除非它们已被修改或正在使用,但我在卸载过程中没有运行这些文件,也没有更改任何文件。我哪里错了?

0 投票
3 回答
1564 浏览

windows-installer - 在安装过程中卸载以前的产品时,产品不会从 Windows 中卸载

我有一个 Installshield Basic MSI 安装程序,用于安装我们产品的新版本。如果用户仍在使用旧版本(由 Installscript 安装程序安装),安装程序将在继续安装新产品之前执行旧产品的卸载字符串。

当用户卸载我们产品的新版本时,这会导致一些问题。当要添加/删除程序并运行卸载程序时,卸载程序会运行并删除文件,但是当刷新添加/删除列表时,产品似乎仍处于安装状态。这些文件已被删除,但注册表中有产品的残余。

有效卸载产品的唯一方法是通过第 3 方注册表清理程序(可能还有一个由此构建的脚本)。奇怪的是,如果用户在安装新产品之前手动卸载旧产品,新产品的卸载将正常工作。此外,在机器上没有旧产品的情况下安装新产品也会导致完全卸载。

这两种产品有不同的产品代码。有什么想法可能导致这种情况吗?谢谢!

0 投票
1 回答
914 浏览

activex - 使用 Installshield 减小 Bacic MSI 安装程序大小的方法

我刚刚制作了一个基本 MSI 安装程序 [使用 installshield 2012 spring Professional] 来安装 ActiveX 控件,我基本上添加了组件并为密钥文件启用了“在安装时提取 com 信息”选项。

我已经硬编码了目标路径并禁用了许可证、公司信息、目标路径选择对话框。在 seup.exe 下的版本中,我启用了压缩 MSZIP 。

ActiveX dll 的大小是 200 kb,但是生成的 setup.exe 文件的大小是 1.5 Mb,有什么办法可以进一步减小大小吗?

0 投票
2 回答
3179 浏览

installshield - 在 installshield basic msi 静默安装期间禁止显示消息框,但在可视安装期间允许它

我使用 InstallShield 2012 创建了一个基本的独立 msi 文件。在开始安装之前需要满足一个先决条件。为了检查这个先决条件,我创建了一个基于 InstallScript 的自定义操作并添加到序列中的第一个位置。如果检查失败,msi 应显示错误消息然后退出。因为 msi 将通过双击直接运行并通过 msiexec 静默运行,所以错误消息应该足够聪明,可以在直接安装期间启动消息框(UI 可用)并在静默安装期间抑制任何消息框(我使用“SpretfMsiLog " 将错误消息写入 msi 日志文件)。

我尝试使用“msiexec /qn”运行静默安装,但消息框仍然出现。有没有办法使用 InstallScript 代码检测安装模式,从而相应地隐藏/显示消息框?

0 投票
1 回答
137 浏览

installshield-2012 - 如何避免 InstallShield 的弹性

我有一个基本的 MSI 项目,它将一些 dll 安装到一个位置说"C:\Program Files (x86)\CompanyA\Service"。文件夹访问权限限制对标准帐户(非管理员)的访问。现在我使用标准帐户启动应用程序,该帐户不使用上述位置中的 DLL。但是由于 InstallShield 的弹性功能,它会尝试检查组件。由于上述组件不可访问,它开始自我修复过程,显示一个对话框“请稍候,Windows 配置 ProductA”。

是否有任何选项可以关闭此弹性功能?或者有没有办法隐藏重新安装对话框?

请建议我们是否有任何其他解决方案来解决上述问题。

0 投票
1 回答
86 浏览

windows-installer - Installshield在卸载时留下字节编译文件

我已经用一些 python 文件作为组件构建了 Installshield Basic MSI 项目。在卸载时,它会留下字节编译的文件。

我可以看到其中一种方法是编写Installscript将在卸载时调用的内容。有什么优雅的方法吗?