Inno setup 基于组件的AppId名称

Inno setup 基于组件的AppId名称,inno-setup,app-id,Inno Setup,App Id,是否可以根据选择要安装的组件创建唯一的AppId名称。我有一个Add,为每个状态安装特定于状态的组件,一次只能选择一个状态进行安装。如果我可以使用组件(状态首字母)作为GUID的前缀或后缀,那么应该可以独立卸载每个状态。我试过下面的方法,但似乎没有奏效 function GetAppId(Value: string): string; begin Result := {WizardSelectedComponents} + '{{244A887F-F3DC-4B8D-

是否可以根据选择要安装的组件创建唯一的AppId名称。我有一个Add,为每个状态安装特定于状态的组件,一次只能选择一个状态进行安装。如果我可以使用组件(状态首字母)作为GUID的前缀或后缀,那么应该可以独立卸载每个状态。我试过下面的方法,但似乎没有奏效

function GetAppId(Value: string): string;
    begin  
        Result := {WizardSelectedComponents} + '{{244A887F-F3DC-4B8D-B0F8-548A90464CEF}';
    end;

无论有多少组件需要不同的ID,您都可以这样做:

function GetAppId(Value: string): string;
var
  strResult: String;
begin
  if IsComponentSelected('ComponentName1') then
    begin
      strResult := '{244A887F-F3DC-4B8D-B0F8-548A90464CEF}';
    end
  else if IsComponentSelected('ComponentName2') then
    begin
      strResult := '{A0A115ED-45E5-4DC7-A73A-3E8046CA4478}';
    end;
end;

在运行时分配指令值时,不需要转义常量(编译器需要转义)。这段代码实际上会生成一个带有双括号的GUID(但谁知道呢,也许这是有意的)。另外,不要忘记初始化
结果
变量。