问题标签 [inno-setup]

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 回答
7195 浏览

installation - 在启动设置而不是结束时提取文件

我正在使用最新版本的 inno,它在安装过程中执行以下操作:

  1. 执行依赖检查以查看安装的内容
  2. 安装尚未安装的依赖项(.net、sql server、directx 等)
  3. 从 [Files] 部分安装应用程序和文件 (wpReady)
  4. 检查 SQL Server 以前安装的数据库并创建/更新表等

步骤 [4] 创建数据库和表等,并且仅在已经安装 SQL Server 的情况下才有效,这就是在步骤 [2] 中完成它的原因。

输出目录包含创建的 setup.exe,我手动放置了包含上述步骤 [1,2 和 4] 所需文件的附加依赖项文件夹。

这很好用,但我想只创建一个包含所有依赖项的单个 exe,wpReady并在上面的步骤 [1] 之前和之前提取依赖项。

依赖项在该部分中,但在安装程序完成所有表单并尝试安装文件后, [Files]直到安装程序执行消息后才会提取这些文件。wpReady

我使用以下内容将我需要的内容添加到 setup.exe

在之前将文件提取到临时目录的最佳方法是什么,wpReady或者我应该先执行这些操作,wpReady然后再安装依赖项(虽然不理想)。

0 投票
3 回答
4238 浏览

installation - 如何使用 Inno Setup 安装程序升级 MSI 安装?

我们最近从基于 Visual Studio 设置 msi 的安装程序转移到 Inno Setup,但我们在使用这个新安装程序升级现有安装时遇到了问题。我知道即使产品代码每次更新都会更改,升级代码仍然是静态的,所以我最初尝试将其设置为 Inno Setup 项目中的 AppId,但这不起作用。然后我尝试了一些其他的 guid 都不起作用。

有没有办法使用 Inno Setup 安装程序正确升级 msi 安装?

0 投票
3 回答
6025 浏览

installation - 如何使用 Inno Setup 取消安装程序?

我正在使用 Inno 安装程序来安装我的产品,在安装程序中,如果该程序被取消或中止,我将执行一个外部程序 (Validator.exe),我必须取消我自己的安装程序。

我将 Validator.exe 保存在 {app} 路径中并执行它。

当安装程序运行时,我调用 Validator.exe 文件并获得执行结果:Exec(ExpandConstant('{app}/Validator.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)。

但这是我尝试过的所有解决方案的问题:

InitializeSetup:Validator.exe 文件尚未复制到 {app} 中,因此永远不会执行。

中止:只能在 (InitializeSetup,InitializeWizard,CurStepChanged(ssInstall)) 中调用,因此在这些情况下验证器尚未复制。

DeinitializeSetup:我可以在安装后执行 Validator.exe,但此时我无法中止我的安装程序。

在 Validator.exe 被复制并执行后,我需要一些方法来取消安装,也许调用卸载但我做不到。

谢谢你的帮助。

0 投票
3 回答
2815 浏览

installation - 如何检测我是否在 InnoSetup 脚本中的终端服务器上安装?

当程序安装在终端服务器上时,我的设置应该会略有不同。我知道,GetSystemMetrics(SM_REMOTESESSION)但据我所知,这只会告诉我我是否在 RDP 会话中运行。它不会捕获服务器管理员在本地登录以安装软件的情况,还是会这样?

检查终端服务器服务似乎也不可行,因为启用远程桌面后,它也在工作站上运行。我需要将此与允许多个并发登录会话的真正 TS 区分开来。

我没有检查任何其他服务或注册表项吗?

0 投票
1 回答
24986 浏览

windows - 当值仅使用默认名称时,如何在 Inno Setup 中获取注册表值?

我正在尝试使用 Inno Setup 的 Pascal 脚本从 Windows 注册表(在本例中为 Google Sketchup)获取应用程序的安装目录,以便我可以在那里安装插件。

注册表项没有名称,它在 Regedit 中只有“(默认)”。

我试过这个:

但它不返回值。有什么建议么?

0 投票
2 回答
6842 浏览

visual-c++ - 在 Inno Setup 中使用参数调用 dll 函数时出现运行时异常

我在 Inno Setup 的 DLL 中成功调用了一个函数,但是在返回时我得到一个运行时错误...异常:地址 XXXXXXX 的访问冲突。写地址 XXXXXX。

该函数声明为:

并调用:

如果我将函数更改为不带参数,则没有问题。如果我将其更改为采用单个整数参数或将其声明为函数并将函数更改为具有整数参数的 void 函数,它仍然会发生。

被调用的函数除了返回之外什么都不做:

0 投票
1 回答
12351 浏览

windows - 在 Inno Setup 安装中运行另一个安装程序

我的公司正在开发一个依赖于我们的另一个应用程序的应用程序。第二个应用程序已经有一个 Inno Setup 安装程序。

所以我想我想将第二个应用程序的安装程序捆绑在第一个应用程序的 Inno Setup 安装程序中。但我不确定如何正确处理。有谁知道这样做的“正确方法”?

我发现了这个:Inno Setup Knowledge Base—HOWTO: Install .MSI files。我假设该技术可用于嵌套的 Inno Setup 安装程序。但我有几个关于细节的问题:

  1. 如果第一个应用程序被卸载,我怎么能做到这一点,第二个也被卸载?
  2. 这是明智的做法(自动卸载​​第二个应用程序),还是应该让用户手动执行此操作?
  3. 如果用户在卸载第一个应用程序时尝试卸载第二个应用程序,我应该以某种方式检测到并发出警告吗?我怎么能那样做?
0 投票
1 回答
1453 浏览

inno-setup - 使用 Inno Setup 将应用程序添加到 OpenWithList

我正在尝试为我创建的应用程序编写安装程序。我在其他地方发现了一个我试图遵循的建议,并且大部分都奏效了。我的应用程序现在位于“打开方式”列表中。但是,该应用程序根本不会运行。难道是因为应用程序没有在其目录中启动,所以它找不到dll?

0 投票
1 回答
251 浏览

inno-setup - 管理员用户总是先于初始用户

使用 InnoSetup 脚本(在 XP/Vista 下似乎可以正常工作),我在七个 RC 下有一个奇怪的行为:

这是 [文件] 部分:

问题是:

代替使用启动设置的用户的 {userappdata},所有数据都转到“Admin”目录...

我肯定错过了一些东西......

0 投票
1 回答
509 浏览

c# - 制作软件安装包问题

我正在制作软件安装包,之前我使用的是 Inno Setup,它工作得非常好。

我在 Inno setup 遇到的当前问题是,它不支持设置 UI 的所有语言,例如简体中文。

VSTS 2008 的安装项目几乎支持所有语言,但不支持从当前安装程序中调用另一个安装程序让最终用户安装依赖的软件包。

我要发布的程序适用于 Windows 平台(Vista 和 XP),用 C# + VSTS 2008 + .Net 2.0 编写。

对我的问题有什么建议吗?

提前谢谢,乔治