问题标签 [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 投票
5 回答
457 浏览

inno-setup - 如何使用 Inno Setup 撤销先前安装计划的文件删除

我已经使用 Inno Setup 发布了一个应用程序。遗憾的是,该应用程序已将数据库文件安装为源文件,因此如果卸载该应用程序,则会删除整个数据库文件。

我将很快发布一个新版本。我希望新版本覆盖以前的版本,根本不安装数据库文件,而是由应用程序本身创建数据库。

如果我安装新版本而不安装原始版本,一切正常。应用程序创建一个数据库文件,卸载后,数据库保留在机器上。

问题是,如果我在机器上安装了以前的版本,然后安装了新版本,那么在卸载新版本后,数据库文件总是被删除。

两个应用程序都使用相同的 AppId 进入同一目录。

如何撤销之前安装程序安排的文件删除?

0 投票
1 回答
1228 浏览

installation - Inno Setup - 条件参数

我正在尝试在 InnoSetup 中设置一种情况,默认情况下它将执行某些操作,除非指定参数以不同方式执行操作。我正在使用 Inno Setup Processor,并且正在考虑提供 #defines,但没有它就无法编译,并且在已经存在的情况下提供 #defines 参数会保留原始值。

还有其他选择吗?

问候

特里斯

0 投票
3 回答
890 浏览

dll - Inno Setup:无论我做什么,卸载过程都无法从 {app} 文件夹中删除 MSIMG32.DLL

这个“MSIMG32.DLL”有什么魔力?为什么inno setup不能删除它?

编辑:此文件刚刚使用 [File] 部分添加到 {app},在卸载结束时我收到消息“无法删除某些元素。这些可以手动删除。” 确切地说是 MSIMG32.DLL。

0 投票
1 回答
19198 浏览

sql - 如何使用 Inno Setup 使用 .sql 脚本更新数据库

我想编译一个设置,该设置将使用用户提供的凭据连接到远程数据库,然后使用 .sql 脚本安装几个 db 组件。

使用 Inno Setup 可以吗?

更多细节:

我想要一个自定义表单,要求用户输入数据库地址和凭据,然后运行一个命令,该命令将执行一个更新远程数据库服务器的 sql 脚本。

如果更新成功 - 成功完成安装。

这是一个相当普遍的问题——我有很多定制的设置应该连接到不同的服务器/运行不同的脚本——这个想法是构建一个通用的表单来提供这个功能。

0 投票
2 回答
1734 浏览

inno-setup - INNO Setup:在安装包中定义配置文件

这可能是一个简单的修复,但我似乎无法理解它。我有一个要安装的应用程序,需要用户从 3 个可能的 INI 文件中选择 1 个来配合安装。我可以轻松地进行 3 种不同的设置,每种都使用不同的 INI,但我想简化问题,并在安装时让用户选择 INI。INI 文件具有相同的名称,因此在打包时必须为它们指定不同的名称。一旦用户选择要安装的 INI,它将被提取到应用程序目录并重命名。有没有办法做到这一点?

谢谢你的帮助!

0 投票
2 回答
3362 浏览

mysql - 从 Inno Setup 项目中调用 MySQL

我正在为一些使用 MySQL 的软件编写安装程序。我正在尝试运行.sql脚本以在安装时设置数据库。唉,我目前在执行它时遇到了很大的问题。

问题似乎源于这样一个事实,即在您将.sql文件路径放入--execute="SOURCE <path to .sql file>"命令中的那一刻,一切都崩溃了。我也试过管它,它不起作用。但是,如果我从命令行运行它,我会收到围绕它无法处理的错误"\"

有什么办法可以做到这一点吗?它让我发疯,我已经花了一天的时间:(

0 投票
2 回答
8301 浏览

installation - 在 Inno Setup 安装中切换到完成页面

我在我的设置中添加了一些自定义页面。在其中一个自定义页面中,我进行了一些检查。如果此检查失败,我想切换到完成页面。我怎样才能做到这一点?

我不能使用ShouldSkipPage事件函数执行此操作,因为:

来自 Inno Setup 文档:

向导调用此事件函数来确定是否应该显示特定页面(由 PageID 指定)。如果返回True,则页面将被跳过;如果您返回 False,则可能会显示该页面。

注意:不会为wpWelcome、wpPreparing 和 wpInstalling 页面调用 此事件函数,也不会为安装程序已确定应跳过的页面(例如,不包含组件的安装中的 wpSelectComponents)调用此事件函数。

0 投票
1 回答
5037 浏览

inno-setup - InnoSetup & Pascal - 即使在成功编译后运行时也会出现类型不匹配错误

当我编译下面的代码时,它没有错误地完成,但是当我尝试运行安装文件时,我得到一个类型不匹配的错误。谁能告诉我可能是什么原因造成的?(确切的错误消息是“运行时错误(在 1:66):类型不匹配。”)

0 投票
3 回答
10684 浏览

inno-setup - 如何在 Inno Setup 中禁用向导窗体上的“下一步”按钮?

有没有办法禁用 Inno Setup 向导表单上的“下一步”按钮?

0 投票
2 回答
329 浏览

visual-studio - Visual Studio 安装程序可以删除由非 Visual Studio 安装程序安装的程序吗?

不久前,我发布了一个 dll 驱动程序的测试版,它使用了一个名为 Inno Setup 的基于脚本的安装程序,它做了三件事。

1) 将 dll 文件复制到目标文件系统上的特定目录
2) 执行 COM 注册
3) 执行包含在 dll 中的自定义注册方法

对于该软件的下一个版本,我已切换到使用 Visual Studio 中的安装项目作为安装程序。在此安装程序中,我希望能够检查目标是否安装了 beta 版本,并撤消上述三个步骤。实现这一目标的最佳方法是什么?