Inno Setup 安装程序运行时命名检查问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Inno Setup 安装程序运行时命名检查问题相关的知识,希望对你有一定的参考价值。

原有的一个iss 脚本,我修改了OutputBaseFilename 的值,想换一个名字出来。
结果打出来的包,不能运行,把打出来的包,修改成原来的名字,就可以运行了
哪位知道这个是怎么弄的吗??
在此谢过了先。。。。

参考技术A 你说的是TMP,对不对?这是一个常数,在开始的时候会安装在C:\文件和设置\用户\一般以新的名称本地设置\ TEMP \目录下有一个字符串中的字符是加目录。在代码段可以在整个段落被使用,可以使用ExpandConstant('TMP')的方式来获得它的价值和使用。 参考技术B OutputDir =
OutputBaseFilename =
我觉得楼上说的不对 。
TMP 这个会写在 OutputDir = TMP my app

楼主说的是 OutputBaseFilename ,我建议楼主 搜搜 OutputBaseFilename 等于的值 是什么,应该是下面的code 要用这个 名字。本回答被提问者采纳

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

【中文标题】在 Inno Setup 安装中运行另一个安装程序【英文标题】:Run another installer in an Inno Setup installation 【发布时间】:2010-11-06 08:47:45 【问题描述】:

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

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

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

    如果第一个应用程序被卸载,第二个应用程序也被卸载,我该如何做到这一点? 这样做是否明智(自动卸载​​第二个应用程序),还是应该让用户手动执行此操作? 如果用户在卸载第一个应用程序时尝试卸载第二个应用程序,我应该以某种方式检测到并发出警告吗?我怎么能这样做?

【问题讨论】:

【参考方案1】:

对于您所说的卸载程序功能级别,我建议您熟悉 Inno Setup 中的 pascal 脚本(如果您还没有的话)。它提供了令人难以置信的定制,但需要注意的是使您的项目更加复杂。

首先回答你的第三个问题:

是的,你应该这样做。为了正确执行此操作,您需要将此功能添加到第二个应用程序(即您的应用程序所依赖的那个)的卸载程序中。请参阅 Inno 设置帮助中的 Uninstall event functions。如果您的应用已安装(例如,通过检查 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\SecondAppName 是否存在),您需要签入该卸载程序,并在这种情况下显示附加警告。

关于你的第二个问题:

如果您的客户有可能希望继续使用第二个应用程序,即使他决定要卸载第一个应用程序,您也应该为他提供选择。卸载您的应用后,我会在您的应用的卸载程序中使用单独的向导页面来执行此操作。

最后,你的第一个问题:

您需要确定其他应用的卸载程序 exe 的名称(完整路径)。您可以从注册表项HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\SecondAppName\UninstallString 中检索它。要从 [CODE] 部分中的脚本执行它,请参阅 Inno Setup 帮助中的 Exec

【讨论】:

以上是关于Inno Setup 安装程序运行时命名检查问题的主要内容,如果未能解决你的问题,请参考以下文章

Inno Setup安装卸载时判断是否程序正在运行

Inno Setup安装程序单例运行

在安装更新之前关闭程序的运行版本(Inno Setup)

更改 Inno Setup 卸载程序的默认名称以避免命名冲突

卸载失败,因为程序正在运行。如何在尝试删除之前让 Inno Setup 检查正在运行的进程?

inno setup相关