Installation 是否可以使用Inno setup创建应用程序插件设置?

Installation 是否可以使用Inno setup创建应用程序插件设置?,installation,inno-setup,Installation,Inno Setup,我目前在Inno setup中创建了一个应用程序设置,其中包含主应用程序和所有插件(作为组件) 然而,那些希望能够单独出售插件的权力机构希望我为主应用程序创建一个独立的安装文件,并为每个插件创建一个独立的安装文件 有没有一种标准的方法可以通过Inno设置来实现这一点?我的答案是由特拉玛(和米拉尔)在年提供的 在主应用程序setup.iss中,添加带有app installation dir的注册表项: [Registry] Root: HKLM; Subkey: "Software\Compan

我目前在Inno setup中创建了一个应用程序设置,其中包含主应用程序和所有插件(作为组件)

然而,那些希望能够单独出售插件的权力机构希望我为主应用程序创建一个独立的安装文件,并为每个插件创建一个独立的安装文件


有没有一种标准的方法可以通过Inno设置来实现这一点?

我的答案是由特拉玛(和米拉尔)在年提供的

在主应用程序setup.iss中,添加带有app installation dir的注册表项:

[Registry]
Root: HKLM; Subkey: "Software\Company\{#AppName}"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"
在plugin.iss中,如果该键存在,我们只需使用该键,如果不存在,则安装到默认路径:

[Setup]
DefaultDirName={reg:HKLM\Software\Company\{#AppName},InstallPath|{pf}\Company\{#AppName}}
DisableProgramGroupPage=yes
DirExistsWarning=no
在本例中,我还禁用了在插件的“开始”菜单中添加程序组,并抑制了我们正在安装非空目录的警告(因为主应用程序已经存在,这将始终是真的)


此外,还有关于如何通过
[code]
部分动态更改DefaultDirName的信息。

您到底想要什么?你有一个没有源脚本的编译设置,你想“破坏”它吗?或者你在为这些插件做设置时遇到了什么问题?请详细说明一下好吗?@TLama:我正在尝试为一个插件创建一个单独的setup.exe,用于检测主应用程序的安装位置(如果可能的话)。很明显,我可以创建一个“哑巴”设置,只需将插件部署到您指定的位置,但我希望有更好的方法来实现。我明白了。是的,有办法。甚至不止一个。您可以将应用程序路径写在注册表的某个地方,使用自己的密钥。或者使用Inno安装程序为其卸载程序制作的注册表项(如果该选项已启用)。但是我推荐第一种选择,因为你将独立于Inno安装程序自己的注册表规则。@TLama:我一直在想类似的事情,但我希望有一种“正式的”和干净的方式来做,而不是制定我自己的。哦,好吧,如果我真的做了一个,我想我会在这里发布一个答案:)使用您自己的注册表项是“官方”方式。Inno Setup(默认情况下)创建注册表项,例如,您可以在其中读取卸载程序的路径,但这些项是Inno Setup的,而不是您的。更糟糕的是,创建指向“外键”的路径的模式可能有一天会随着一些新的Inno安装版本而改变,您需要修改脚本。与此相比,使用自己的钥匙是稳定的,并且在您的控制之下。