问题标签 [installshield]

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 投票
2 回答
15879 浏览

installation - 为什么 MSI 需要原始 .msi 文件才能继续卸载?

大多数人可能已经注意到,在卸载 MSI 包时,Windows 会要求提供原始.msi文件。这是为什么?

我只能看到它的缺点:

  • 对网络变化没有弹性。
  • 对本地磁盘更改没有弹性。
  • 出乎用户意料。
  • 通常要求用户离开他们的办公桌并开始讨伐以获得正确的 CD。
  • 某种证明装置不是独立的。
  • 提倡使用不安全的工具,例如 msizap。
  • 这反过来又促进了“下次我将只使用 zip 文件”的心态。

有人可以对此有所了解吗?

0 投票
2 回答
3652 浏览

sql-server-2005 - 使用 InstallShield 安装 SqlServer 2005 Express 并创建唯一的命名实例

我正在使用 Installshield 2008 express 创建安装包。我的应用程序依赖于 Sql Server 2005 express edition。我知道我可以检查可再发行选项卡下的“microsoft sql server 2005 express”先决条件。但是,这将安装完全留在最终用户手中,如果他/她一直选择默认设置,我们最终会使用命名实例 SqlExpress 进行安装。至少,我希望安装以 MyCompany 命名实例作为默认值。

我该如何做到这一点?

我必须升级到更强大的 installshield 版本吗?

0 投票
2 回答
766 浏览

deployment - 以编程方式提高用户权限

我一直在维护一个安装,但我不是真正的专家。现在我被要求为此提出一个解决方案:

我们的软件始终与计算机一起出售,因为它必须在非常受控的环境中运行。安装程序需要管理权限才能执行。到目前为止,我们有两个不同的用户,一个具有管理权限,另一个没有。我们的客户服务以管理员身份登录,安装软件并重新启动机器,以便用户可以作为普通用户访问。

现在我们希望用户能够自己安装软件,但我们不希望他们以管理员身份访问,因为他们可以修改不应修改的内容。

那么,有没有办法在安装过程中以编程方式提高用户权限,然后再降低它们呢?安装程序是使用 InstallShield 制作的,但我们使用 vbscript 来检查一些先决条件。

0 投票
2 回答
217 浏览

installation - 阻止功能升级

我有一个自动创建 InstallShield 安装程序(InstallScript,而不是 MSI)的工具,而我目前的主要问题是,在升级安装时,我需要一种方法来防止功能被升级。在安装过程中,我想检查安装在目标系统上的 exe 文件的版本,并且据此,我希望能够从正在升级的文件集中排除特定功能。

我试图通过调用FeatureSelectItem(feature, FALSE)功能的OnInstalling事件处理程序来实现这一点,但这会导致整个功能被卸载,这不是我想要的。我只想从升级中排除该功能。

有没有办法做到这一点?

0 投票
1 回答
263 浏览

unicode - InstallShield2009 Unicode 支持

我们的安装程序是使用 InstallShield2009 编写的,作为认证要求的一部分,我们必须始终支持 Unicode。

该应用程序本身是 .NET,因此本机支持 Unicode,但是在使用中文字符集测试我们的安装时,我们可以看到 InstallShield 对话框引发的问题。

快速谷歌后,我发现了一篇相关的帖子,有人认为 IS2008 中没有 unicode 支持。

我也直接向 Acresso 发送了电子邮件,但作为一个有爱心的开发人员,我想我会在这里发布问题以供将来参考,以防其他人有同样的问题。

如果有人过去遇到过这个问题,我们将不胜感激。谢谢。

0 投票
1 回答
9755 浏览

vbscript - 当我的 InstallShield 设置尝试运行我的 VBS 自定义操作时,为什么会收到 1720 错误?

自定义操作配置如下:

自定义操作名称:MyCustomAction

VBScript 文件名<PathVar01>\MyFolder\MyVBSfile.vbs

脚本函数:我的函数

返回处理:同步(检查退出代码)

脚本内执行:立即执行

它通过以下 InstallScript 代码执行:

当安装程序到达 InstallScript 中的该行时,安装程​​序会显示错误警报,说明:

“错误 1720。此 Windows Installer 程序包存在问题。无法运行完成此安装所需的脚本。请联系您的支持人员或程序包供应商。”

MsiDoAction 返回的结果代码是'1603',根据 winerror.h,它是:

为什么会这样?我开始怀疑该文件是否正确包含。然而,我指向的是正确的文件,并且我尝试通过 InstallShield 支持文件包含 VBS,认为这将确保文件与设置一起存在,但结果相同。

0 投票
1 回答
2181 浏览

installation - 在 InstallShield 中以编程方式设置 INSTALLDIR

我正在尝试在 InstallShield v8.02 中以编程方式设置更改 INSTALLDIR(无法对版本执行任何操作)。

我的代码在此代码 (C#) 的第三行出现异常“未知错误”崩溃

有什么建议么?

0 投票
4 回答
6971 浏览

windows-installer - 链接 msi/Bootstrapper/先决条件?

我有一些组件 MSI 包需要一起安装以形成最终应用程序。

问题是:可以更新组成包的组件,并且可以在 http 文件服务器上重新启动该组件。我应该采取什么方法?

我正在编写的安装程序是“主”安装程序。它需要能够读取其客户端计算机上安装的每个组件的版本,以便仅在该一个组件上执行升级。

此外,如果第一次安装应用程序,安装程序将下载并安装所有必需的组件。

我正在使用 Installshield 2009。

我已经查看了链接的 MSI,但主安装程序是空的。因为它需要尽可能轻巧。

我不知道如何编写引导程序应用程序,我的公司更喜欢我使用 installshield 来编写安装程序。

我已经研究过 - 显然先决条件并不意味着要卸载。


我相信我可以通过更改版本号来进行小更新,从而允许下载仅下载它需要的组件而不下载整个安装程序 - 目前我正在实施您建议的方式(sascha),我的公司将正在使用通过 InstallShield 提供的 FLEXnet 连接服务。我提到的“组件”(我们的开发人员喜欢使用的一个术语)在概念上类似于 InstallShield 的组件概念。但是,我已经修改了要由功能封装的“组件”,这样在构建版本时,我可以选择将每个“功能”包装在 cab 文件中。

这听起来很令人困惑——即使对我来说也是如此。

我已经诉诸功能<组件(包括服务)

我的公司拒绝让我使用除 Installshield 之外的任何其他安装程序。我的猜测是,为了在遥远的将来更新先决条件要求,需要编写一个新的安装程序,并将应用程序作为主要升级重新发布。这对我来说很有意义。

Perermtate,我认为没有办法卸载预先安装的先决条件,这是有道理的,因为可能需要先决条件作为其他应用程序的平台,毕竟“先决条件”是应用程序的第 3 方组件.

感谢您的所有回复!

0 投票
2 回答
1597 浏览

.net - 检测 IIS 是否启用

有没有办法检测IIS是否启用?

我知道如何检查它是否已安装,但我需要知道它是否已安装但未启用。

此外,这可以通过 InstallShield 本地完成吗?通过 .NET 进行检查是可以接受的,因为我们可以编写自定义操作,但如果有 IS 调用,那将是理想的。

感谢任何提示/提示,谢谢

0 投票
1 回答
3132 浏览

installation - 使用 Installshield 和用户对话框卸载 MSI 时的特权提升

我需要实现以下目标: MSI 的卸载应该显示一个用户对话框,基于该对话框 Windows Installer 知道如何准确删除软件(在这种情况下:用户必须选择是否也删除数据库)。

运行时,卸载过程也会触发自定义操作。所有这些操作都需要管理权限。

所以我需要让“程序和功能”在“删除”上显示完整的 UI,或者在点击“更改”然后删除时显示管理权限的身份验证对话框。

我该怎么做呢?