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

vb6 - Vista 幻影目录

我们有一个程序,安装程序会检查配置文件是否存在,如果存在,它不会复制该文件(它假设用户已经修改了他们的配置文件并希望保留这些修改)。不幸的是,这是一个 pre-Vista 应用程序,它将配置文件保存在 Program Files 中。问题是,如果您在重新安装某些 API 时手动清除该目录,仍然认为那里有一个目录。例如 VB6,它的文件浏览对话框看到文件夹,但是资源管理器、cmd shell 等看不到文件夹。覆盖文件仍然会留下旧文件(对某些 API,但不是对资源管理器),除了“浏览文件”对话框中的表单外,无法删除旧文件。

这些 Phantom 文件夹是怎么回事,我们如何删除文件以便所有 API 看到相同的内容?也许它与TxF或用于搜索的索引器有关,但我们使用的安装程序 (InnoSetup) 和应用程序的一部分(用 VB6 编写的部分)都看到了旧版本的文件,而其他一切都看到了当前版本。

0 投票
1 回答
2737 浏览

windows-installer - 使用 Inno Setup 有条件地安装 x64 驱动程序

我正在尝试使用 Inno Setup 引导具有所有必需先决条件的 WiX 生成的 .msi 文件。

在大多数情况下,这工作得很好,但我找不到任何信息来有条件地安装和运行基于 x86/x64 的先决条件安装程序,就像在 Windows Installer 中一样。

有人对此有任何运气吗?我试图避免仅仅因为一个驱动程序就拥有一个单独的 x64 安装程序。我正在引导的应用程序在 x86 中运行,并依赖 WOW 来支持 x64。

谢谢!

0 投票
2 回答
4899 浏览

windows-installer - Inno Setup 中的 msi 返回码

我想在静默模式下调用多个 .msi 文件,如果有任何失败,则停止整个安装。

是否可以从 [run] 部分调用 msiexec.exe 的返回码?

目前我只能在 windows 事件查看器中看到错误消息。

0 投票
2 回答
2268 浏览

installation - Inno Setup 作为 .msi 的引导程序

我正在尝试使用 Inno Setup 来引导我的 Windows 安装程序安装包的一些先决条件,并且我对此非常幸运。

现在我想知道是否可以制作 Inno Setup 包,使其不会出现在“添加/删除程序 (ARP)”窗口选项中?

我希望将单独的安装一起安装(每个都是有条件的)但单独删除。

我将安装包安装到 Inno Setup 生成的临时文件夹中,因此实际文件在安装序列结束时被删除,但 ARP 仍然显示。

0 投票
5 回答
6715 浏览

.net - 你如何让 Inno Setup 在执行长执行时看起来不冻结?

长期Exec安装.NET 3.5,输出脚本基于此: http: //www.blackhillsoftware.com/blog/2006/06/26/using-innosetup-with-the-dotnet-framework/

问题在于它正在使用ewWaitUntilTerminated,因为我们需要捕获退出代码。由于我们正在运行它/passive /norestart以减少用户方面的工作(也许我们不应该?)

我能想到的最简单的选择是在安装.NET 时隐藏窗口并在完成后再次显示它,但我不知道该怎么做。

理想的解决方案是显示一个进度页面,但这似乎不太可能,因为我们需要立即返回,但在进程退出时仍会以某种方式收到通知并捕获退出代码,否则我们会只是有一个永恒的进度条。

关于如何解决这个问题的任何想法?

编辑:最小化可能会更好,但也不知道该怎么做。我们确实会显示一条消息,通知用户该过程可能需要 10-20 分钟,但问题是主设置表单完全冻结,无法移动、最小化或对其进行任何操作。此外/passive,在较慢的机器上运行 .NET 安装程序实际上并不会在一两分钟内显示任何进度。

0 投票
3 回答
1260 浏览

c# - Vista & C# - 拖放问题(与海拔无关)

有问题的应用程序是 .Net 2.0 Framework WinForms。它应该适用于大型用户群(从 CD 安装)。使用 InnoSetup 完成安装。

在两台机器上,应用程序不接受拖放(应用程序和 D&D 的源都具有相同的海拔高度)。

通过为应用程序快捷方式的 INTERACTIVE SID 添加 Read & Read&Execute 权限,似乎解决了这个问题。

问题:添加这些权限和 D&D 是如何关联的,以及如何在安装过程中检查/设置这些权限?

0 投票
6 回答
11814 浏览

return-value - 从命令行应用程序将字符串值传递给 Inno Setup

场景是我们有一个客户端/服务器应用程序,客户端安装是使用 Inno Setup 的引导程序,它从 IP/端口号指定的服务器下载客户端。我们希望能够通过 UDP 广播检测本地网络上是否有服务器,并且可以编写一个控制台应用程序来执行此操作。问题是,我们如何将信息从控制台应用程序传递给安装程序?

我可以捕获返回码,但那只能是一个 int。据我所知,在 Inno Setup 中读取文件的唯一功能是在预处理器中,因此我们无法读取控制台应用程序在运行时创建的文件。我唯一能想到的就是返回一个 int,其中前 4 位数字是 '.' 和 : 在端口之前的位置,然后解析出该值,这似乎是 hackish、脆弱且容易出错,尤其是考虑到我对构造字符串的 Inno Setup 语法/函数并不十分熟悉。

有什么建议么?

0 投票
9 回答
50766 浏览

inno-setup - 如何配置 Inno Setup 以卸载所有内容?

我是 Inno Setup 的新手。卡在一个问题上〜如何配置卸载部分以删除由应用程序创建的所有文件、文件夹、子文件夹,甚至新文件/文件夹等(换句话说,100% 删除应用程序和相关文件)。

我在这里和他们的论坛上搜寻,结果空无一物。任何人都可以向我指出有关如何执行此操作的文档、常见问题解答等吗?

更新

感谢到目前为止的所有反馈(非常棒)。所以看起来我可以使用卸载部分中的 {app}*.* 指令删除所有内容。看起来每个人都反对它。所以现在的问题变成了(我想知道这是否应该是一个全新的问题)在卸载过程中是否有一种方法可以询问用户“您要删除与此应用程序关联的所有项目文件吗?” 如果他们回答是,运行卸载 {app}*.* 块?

谢谢 -

0 投票
1 回答
2131 浏览

sql-server-2005 - 如果组件已安装,则无人值守安装 SQL Server 2005 会出现工作站组件错误

我之前问过类似的问题,但从未解决,所以我又来了!

我有一个无人值守的 SQL Server 2005 安装,当在尚未安装 SQL Server 的机器上安装 SQL Server 时效果很好。

我在执行安装时使用以下参数(这是通过 Inno Setup 自动安装的):

它可以毫无问题地安装 SQL Server Express 的实例。但是,当我尝试在已经有另一个带有工作站组件的实例的机器上安装 SQL Server 时,我收到以下错误:

“您在 ADD_LOCAL 属性中指定的组件已安装。要升级现有组件,请参阅 template.ini 并将 UPGRADE 属性设置为组件的名称。”

我也尝试过根据错误消息使用 UPGRADE 方法

但得到以下错误:

“SQL Server 安装程序无法执行升级,因为该组件未安装在计算机上。要继续,请验证当前安装的要升级的组件,并且在 ADDLOCAL 属性中指定了要升级的组件。”

我可以从添加/删除程序(Vista 中的程序和功能)中手动删除工作站组件,并且安装工作正常,但这不是我每次都想手动执行的操作。特别是如果它安装在使用这些组件的 PC 上。

对于如何阻止在无人值守安装期间显示此错误的任何建议,我将不胜感激。

谢谢

0 投票
2 回答
2757 浏览

inno-setup - 使用 pascal (innosetup) 获取文件的最后更新时间

在 innosetup 脚本的卸载部分,我想添加一个检查以查看特定文件的最后更新日期时间是否发生在过去 10 分钟内。

有谁知道这个 innosetup 兼容的帕斯卡代码?