不同设置类型(服务器/客户端)的Inno Setup子选项/子组件

时间:2019-10-24 10:27:52

标签: installer inno-setup

我正在尝试使用服务器和客户端安装类型为我的应用准备安装程序。 使用某些代码,服务器类型很容易,但是客户端安装也有很多选项。 我正在尝试创建一个带有类型选择的页面,如果用户选择客户端安装,则还有许多其他选择。 有可能吗?

示例:

  • 服务器

    • (无选项)
  • 客户

    • 子选项A或
    • 子选项B

2 个答案:

答案 0 :(得分:0)

您的问题相当广泛。但是,如果我正确理解您的需求,则可以使用标准的Inno Setup TypesComponentsTasks系统:

[Types]
Name: server; Description: "Server";
Name: client; Description: "Client";

[Components]
; The "descriptions" are not visible in this setup
Name: server; Description: "Server"; Types: server;
Name: client; Description: "Client"; Types: client;

[Tasks]
Name: client1; Description: "Client feature 1"; Components: client;
Name: client2; Description: "Client feature 2"; Components: client;

[Files]
Source: "Server.exe"; DestDir: "{app}"; Components: server;
Source: "ClientFeature1.exe"; DestDir: "{app}"; Tasks: client1;
Source: "ClientFeature2.exe"; DestDir: "{app}"; Tasks: client2;

enter image description here

enter image description here

答案 1 :(得分:0)

如果您希望将所有内容放在一个地方,则可以使用父组件:

[Types]
Name: custom; Description: "Custom"; Flags: iscustom

[Components]
Name: server; Description: "Server"; Types: custom; Flags: exclusive
Name: client; Description: "Client"; Flags: exclusive
Name: client\feature1; Description: "Feature 1"
Name: client\feature2; Description: "Feature 2"

(默认情况下,您选择戴上Types: custom的那个都会被选中。)

然后,您可以在Components: client上为所有客户端设置条件,或者仅在选择功能1时在Components: client\feature1上设置条件,等等。

还有其他一些变化,具体取决于客户端功能是否互斥。